20757 lines
		
	
	
		
			714 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			20757 lines
		
	
	
		
			714 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | ;(function(root, factory) { | |||
|  |   'use strict' | |||
|  |   if (typeof define === 'function' && define.amd) { | |||
|  |     define([], factory) | |||
|  |   } | |||
|  |   Cesium['viewerCesiumNavigationMixin'] = factory() | |||
|  | })( | |||
|  |   typeof window !== 'undefined' | |||
|  |     ? window | |||
|  |     : typeof self !== 'undefined' | |||
|  |     ? self | |||
|  |     : this, | |||
|  |   function() { | |||
|  |     var requirejs, require, define | |||
|  |     ;(function(undef) { | |||
|  |       var main, | |||
|  |         req, | |||
|  |         makeMap, | |||
|  |         handlers, | |||
|  |         defined = {}, | |||
|  |         waiting = {}, | |||
|  |         config = {}, | |||
|  |         defining = {}, | |||
|  |         hasOwn = Object.prototype.hasOwnProperty, | |||
|  |         aps = [].slice, | |||
|  |         jsSuffixRegExp = /\.js$/ | |||
|  | 
 | |||
|  |       function hasProp(obj, prop) { | |||
|  |         return hasOwn.call(obj, prop) | |||
|  |       } | |||
|  | 
 | |||
|  |       function normalize(name, baseName) { | |||
|  |         var nameParts, | |||
|  |           nameSegment, | |||
|  |           mapValue, | |||
|  |           foundMap, | |||
|  |           lastIndex, | |||
|  |           foundI, | |||
|  |           foundStarMap, | |||
|  |           starI, | |||
|  |           i, | |||
|  |           j, | |||
|  |           part, | |||
|  |           normalizedBaseParts, | |||
|  |           baseParts = baseName && baseName.split('/'), | |||
|  |           map = config.map, | |||
|  |           starMap = (map && map['*']) || {} | |||
|  |         if (name) { | |||
|  |           name = name.split('/') | |||
|  |           lastIndex = name.length - 1 | |||
|  |           if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { | |||
|  |             name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '') | |||
|  |           } | |||
|  |           if (name[0].charAt(0) === '.' && baseParts) { | |||
|  |             normalizedBaseParts = baseParts.slice(0, baseParts.length - 1) | |||
|  |             name = normalizedBaseParts.concat(name) | |||
|  |           } | |||
|  |           for (i = 0; i < name.length; i++) { | |||
|  |             part = name[i] | |||
|  |             if (part === '.') { | |||
|  |               name.splice(i, 1) | |||
|  |               i -= 1 | |||
|  |             } else if (part === '..') { | |||
|  |               if ( | |||
|  |                 i === 0 || | |||
|  |                 (i === 1 && name[2] === '..') || | |||
|  |                 name[i - 1] === '..' | |||
|  |               ) { | |||
|  |                 continue | |||
|  |               } else if (i > 0) { | |||
|  |                 name.splice(i - 1, 2) | |||
|  |                 i -= 2 | |||
|  |               } | |||
|  |             } | |||
|  |           } | |||
|  |           name = name.join('/') | |||
|  |         } | |||
|  |         if ((baseParts || starMap) && map) { | |||
|  |           nameParts = name.split('/') | |||
|  |           for (i = nameParts.length; i > 0; i -= 1) { | |||
|  |             nameSegment = nameParts.slice(0, i).join('/') | |||
|  |             if (baseParts) { | |||
|  |               for (j = baseParts.length; j > 0; j -= 1) { | |||
|  |                 mapValue = map[baseParts.slice(0, j).join('/')] | |||
|  |                 if (mapValue) { | |||
|  |                   mapValue = mapValue[nameSegment] | |||
|  |                   if (mapValue) { | |||
|  |                     foundMap = mapValue | |||
|  |                     foundI = i | |||
|  |                     break | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |             } | |||
|  |             if (foundMap) { | |||
|  |               break | |||
|  |             } | |||
|  |             if (!foundStarMap && starMap && starMap[nameSegment]) { | |||
|  |               foundStarMap = starMap[nameSegment] | |||
|  |               starI = i | |||
|  |             } | |||
|  |           } | |||
|  |           if (!foundMap && foundStarMap) { | |||
|  |             foundMap = foundStarMap | |||
|  |             foundI = starI | |||
|  |           } | |||
|  |           if (foundMap) { | |||
|  |             nameParts.splice(0, foundI, foundMap) | |||
|  |             name = nameParts.join('/') | |||
|  |           } | |||
|  |         } | |||
|  |         return name | |||
|  |       } | |||
|  | 
 | |||
|  |       function makeRequire(relName, forceSync) { | |||
|  |         return function() { | |||
|  |           var args = aps.call(arguments, 0) | |||
|  |           if (typeof args[0] !== 'string' && args.length === 1) { | |||
|  |             args.push(null) | |||
|  |           } | |||
|  |           return req.apply(undef, args.concat([relName, forceSync])) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function makeNormalize(relName) { | |||
|  |         return function(name) { | |||
|  |           return normalize(name, relName) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function makeLoad(depName) { | |||
|  |         return function(value) { | |||
|  |           defined[depName] = value | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function callDep(name) { | |||
|  |         if (hasProp(waiting, name)) { | |||
|  |           var args = waiting[name] | |||
|  |           delete waiting[name] | |||
|  |           defining[name] = true | |||
|  |           main.apply(undef, args) | |||
|  |         } | |||
|  |         if (!hasProp(defined, name) && !hasProp(defining, name)) { | |||
|  |           throw new Error('No ' + name) | |||
|  |         } | |||
|  |         return defined[name] | |||
|  |       } | |||
|  | 
 | |||
|  |       function splitPrefix(name) { | |||
|  |         var prefix, | |||
|  |           index = name ? name.indexOf('!') : -1 | |||
|  |         if (index > -1) { | |||
|  |           prefix = name.substring(0, index) | |||
|  |           name = name.substring(index + 1, name.length) | |||
|  |         } | |||
|  |         return [prefix, name] | |||
|  |       } | |||
|  | 
 | |||
|  |       makeMap = function(name, relName) { | |||
|  |         var plugin, | |||
|  |           parts = splitPrefix(name), | |||
|  |           prefix = parts[0] | |||
|  |         name = parts[1] | |||
|  |         if (prefix) { | |||
|  |           prefix = normalize(prefix, relName) | |||
|  |           plugin = callDep(prefix) | |||
|  |         } | |||
|  |         if (prefix) { | |||
|  |           if (plugin && plugin.normalize) { | |||
|  |             name = plugin.normalize(name, makeNormalize(relName)) | |||
|  |           } else { | |||
|  |             name = normalize(name, relName) | |||
|  |           } | |||
|  |         } else { | |||
|  |           name = normalize(name, relName) | |||
|  |           parts = splitPrefix(name) | |||
|  |           prefix = parts[0] | |||
|  |           name = parts[1] | |||
|  |           if (prefix) { | |||
|  |             plugin = callDep(prefix) | |||
|  |           } | |||
|  |         } | |||
|  |         return { | |||
|  |           f: prefix ? prefix + '!' + name : name, | |||
|  |           n: name, | |||
|  |           pr: prefix, | |||
|  |           p: plugin | |||
|  |         } | |||
|  |       } | |||
|  |       function makeConfig(name) { | |||
|  |         return function() { | |||
|  |           return (config && config.config && config.config[name]) || {} | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       handlers = { | |||
|  |         require: function(name) { | |||
|  |           return makeRequire(name) | |||
|  |         }, | |||
|  |         exports: function(name) { | |||
|  |           var e = defined[name] | |||
|  |           if (typeof e !== 'undefined') { | |||
|  |             return e | |||
|  |           } else { | |||
|  |             return (defined[name] = {}) | |||
|  |           } | |||
|  |         }, | |||
|  |         module: function(name) { | |||
|  |           return { | |||
|  |             id: name, | |||
|  |             uri: '', | |||
|  |             exports: defined[name], | |||
|  |             config: makeConfig(name) | |||
|  |           } | |||
|  |         } | |||
|  |       } | |||
|  |       main = function(name, deps, callback, relName) { | |||
|  |         var cjsModule, | |||
|  |           depName, | |||
|  |           ret, | |||
|  |           map, | |||
|  |           i, | |||
|  |           args = [], | |||
|  |           callbackType = typeof callback, | |||
|  |           usingExports | |||
|  |         relName = relName || name | |||
|  |         if (callbackType === 'undefined' || callbackType === 'function') { | |||
|  |           deps = | |||
|  |             !deps.length && callback.length | |||
|  |               ? ['require', 'exports', 'module'] | |||
|  |               : deps | |||
|  |           for (i = 0; i < deps.length; i += 1) { | |||
|  |             map = makeMap(deps[i], relName) | |||
|  |             depName = map.f | |||
|  |             if (depName === 'require') { | |||
|  |               args[i] = handlers.require(name) | |||
|  |             } else if (depName === 'exports') { | |||
|  |               args[i] = handlers.exports(name) | |||
|  |               usingExports = true | |||
|  |             } else if (depName === 'module') { | |||
|  |               cjsModule = args[i] = handlers.module(name) | |||
|  |             } else if ( | |||
|  |               hasProp(defined, depName) || | |||
|  |               hasProp(waiting, depName) || | |||
|  |               hasProp(defining, depName) | |||
|  |             ) { | |||
|  |               args[i] = callDep(depName) | |||
|  |             } else if (map.p) { | |||
|  |               map.p.load( | |||
|  |                 map.n, | |||
|  |                 makeRequire(relName, true), | |||
|  |                 makeLoad(depName), | |||
|  |                 {} | |||
|  |               ) | |||
|  |               args[i] = defined[depName] | |||
|  |             } else { | |||
|  |               throw new Error(name + ' missing ' + depName) | |||
|  |             } | |||
|  |           } | |||
|  |           ret = callback ? callback.apply(defined[name], args) : undefined | |||
|  |           if (name) { | |||
|  |             if ( | |||
|  |               cjsModule && | |||
|  |               cjsModule.exports !== undef && | |||
|  |               cjsModule.exports !== defined[name] | |||
|  |             ) { | |||
|  |               defined[name] = cjsModule.exports | |||
|  |             } else if (ret !== undef || !usingExports) { | |||
|  |               defined[name] = ret | |||
|  |             } | |||
|  |           } | |||
|  |         } else if (name) { | |||
|  |           defined[name] = callback | |||
|  |         } | |||
|  |       } | |||
|  |       requirejs = require = req = function( | |||
|  |         deps, | |||
|  |         callback, | |||
|  |         relName, | |||
|  |         forceSync, | |||
|  |         alt | |||
|  |       ) { | |||
|  |         if (typeof deps === 'string') { | |||
|  |           if (handlers[deps]) { | |||
|  |             return handlers[deps](callback) | |||
|  |           } | |||
|  |           return callDep(makeMap(deps, callback).f) | |||
|  |         } else if (!deps.splice) { | |||
|  |           config = deps | |||
|  |           if (config.deps) { | |||
|  |             req(config.deps, config.callback) | |||
|  |           } | |||
|  |           if (!callback) { | |||
|  |             return | |||
|  |           } | |||
|  |           if (callback.splice) { | |||
|  |             deps = callback | |||
|  |             callback = relName | |||
|  |             relName = null | |||
|  |           } else { | |||
|  |             deps = undef | |||
|  |           } | |||
|  |         } | |||
|  |         callback = callback || function() {} | |||
|  |         if (typeof relName === 'function') { | |||
|  |           relName = forceSync | |||
|  |           forceSync = alt | |||
|  |         } | |||
|  |         if (forceSync) { | |||
|  |           main(undef, deps, callback, relName) | |||
|  |         } else { | |||
|  |           setTimeout(function() { | |||
|  |             main(undef, deps, callback, relName) | |||
|  |           }, 4) | |||
|  |         } | |||
|  |         return req | |||
|  |       } | |||
|  |       req.config = function(cfg) { | |||
|  |         return req(cfg) | |||
|  |       } | |||
|  |       requirejs._defined = defined | |||
|  |       define = function(name, deps, callback) { | |||
|  |         if (typeof name !== 'string') { | |||
|  |           throw new Error( | |||
|  |             'See almond README: incorrect module build, no module name' | |||
|  |           ) | |||
|  |         } | |||
|  |         if (!deps.splice) { | |||
|  |           callback = deps | |||
|  |           deps = [] | |||
|  |         } | |||
|  |         if (!hasProp(defined, name) && !hasProp(waiting, name)) { | |||
|  |           waiting[name] = [name, deps, callback] | |||
|  |         } | |||
|  |       } | |||
|  |       define.amd = { jQuery: true } | |||
|  |     })() | |||
|  |     define('almond', function() {}) | |||
|  |     ;(function() { | |||
|  |       ;(function(n) { | |||
|  |         var x = this || (0, eval)('this'), | |||
|  |           u = x.document, | |||
|  |           M = x.navigator, | |||
|  |           v = x.jQuery, | |||
|  |           F = x.JSON | |||
|  |         ;(function(n) { | |||
|  |           'function' === typeof define && define.amd | |||
|  |             ? define('knockout', ['exports', 'require'], n) | |||
|  |             : 'object' === typeof exports && 'object' === typeof module | |||
|  |             ? n(module.exports || exports) | |||
|  |             : n((x.ko = {})) | |||
|  |         })(function(N, O) { | |||
|  |           function J(a, c) { | |||
|  |             return null === a || typeof a in T ? a === c : !1 | |||
|  |           } | |||
|  | 
 | |||
|  |           function U(b, c) { | |||
|  |             var d | |||
|  |             return function() { | |||
|  |               d || | |||
|  |                 (d = a.a.setTimeout(function() { | |||
|  |                   d = n | |||
|  |                   b() | |||
|  |                 }, c)) | |||
|  |             } | |||
|  |           } | |||
|  | 
 | |||
|  |           function V(b, c) { | |||
|  |             var d | |||
|  |             return function() { | |||
|  |               clearTimeout(d) | |||
|  |               d = a.a.setTimeout(b, c) | |||
|  |             } | |||
|  |           } | |||
|  | 
 | |||
|  |           function W(a, c) { | |||
|  |             c && c !== I | |||
|  |               ? 'beforeChange' === c | |||
|  |                 ? this.Kb(a) | |||
|  |                 : this.Ha(a, c) | |||
|  |               : this.Lb(a) | |||
|  |           } | |||
|  | 
 | |||
|  |           function X(a, c) { | |||
|  |             null !== c && c.k && c.k() | |||
|  |           } | |||
|  | 
 | |||
|  |           function Y(a, c) { | |||
|  |             var d = this.Hc, | |||
|  |               e = d[s] | |||
|  |             e.R || | |||
|  |               (this.lb && this.Ma[c] | |||
|  |                 ? (d.Pb(c, a, this.Ma[c]), (this.Ma[c] = null), --this.lb) | |||
|  |                 : e.r[c] || d.Pb(c, a, e.s ? { ia: a } : d.uc(a))) | |||
|  |           } | |||
|  | 
 | |||
|  |           function K(b, c, d, e) { | |||
|  |             a.d[b] = { | |||
|  |               init: function(b, g, k, l, m) { | |||
|  |                 var h, r | |||
|  |                 a.m( | |||
|  |                   function() { | |||
|  |                     var q = a.a.c(g()), | |||
|  |                       p = !d !== !q, | |||
|  |                       A = !r | |||
|  |                     if (A || c || p !== h) | |||
|  |                       A && a.va.Aa() && (r = a.a.ua(a.f.childNodes(b), !0)), | |||
|  |                         p | |||
|  |                           ? (A || a.f.da(b, a.a.ua(r)), | |||
|  |                             a.eb(e ? e(m, q) : m, b)) | |||
|  |                           : a.f.xa(b), | |||
|  |                         (h = p) | |||
|  |                   }, | |||
|  |                   null, | |||
|  |                   { i: b } | |||
|  |                 ) | |||
|  |                 return { controlsDescendantBindings: !0 } | |||
|  |               } | |||
|  |             } | |||
|  |             a.h.ta[b] = !1 | |||
|  |             a.f.Z[b] = !0 | |||
|  |           } | |||
|  | 
 | |||
|  |           var a = 'undefined' !== typeof N ? N : {} | |||
|  |           a.b = function(b, c) { | |||
|  |             for (var d = b.split('.'), e = a, f = 0; f < d.length - 1; f++) | |||
|  |               e = e[d[f]] | |||
|  |             e[d[d.length - 1]] = c | |||
|  |           } | |||
|  |           a.G = function(a, c, d) { | |||
|  |             a[c] = d | |||
|  |           } | |||
|  |           a.version = '3.4.0' | |||
|  |           a.b('version', a.version) | |||
|  |           a.options = { deferUpdates: !1, useOnlyNativeEvents: !1 } | |||
|  |           a.a = (function() { | |||
|  |             function b(a, b) { | |||
|  |               for (var c in a) a.hasOwnProperty(c) && b(c, a[c]) | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(a, b) { | |||
|  |               if (b) for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]) | |||
|  |               return a | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(a, b) { | |||
|  |               a.__proto__ = b | |||
|  |               return a | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(b, c, d, e) { | |||
|  |               var h = b[c].match(r) || [] | |||
|  |               a.a.q(d.match(r), function(b) { | |||
|  |                 a.a.pa(h, b, e) | |||
|  |               }) | |||
|  |               b[c] = h.join(' ') | |||
|  |             } | |||
|  | 
 | |||
|  |             var f = { __proto__: [] } instanceof Array, | |||
|  |               g = 'function' === typeof Symbol, | |||
|  |               k = {}, | |||
|  |               l = {} | |||
|  |             k[ | |||
|  |               M && /Firefox\/2/i.test(M.userAgent) | |||
|  |                 ? 'KeyboardEvent' | |||
|  |                 : 'UIEvents' | |||
|  |             ] = ['keyup', 'keydown', 'keypress'] | |||
|  |             k.MouseEvents = 'click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave'.split( | |||
|  |               ' ' | |||
|  |             ) | |||
|  |             b(k, function(a, b) { | |||
|  |               if (b.length) | |||
|  |                 for (var c = 0, d = b.length; c < d; c++) l[b[c]] = a | |||
|  |             }) | |||
|  |             var m = { propertychange: !0 }, | |||
|  |               h = | |||
|  |                 u && | |||
|  |                 (function() { | |||
|  |                   for ( | |||
|  |                     var a = 3, | |||
|  |                       b = u.createElement('div'), | |||
|  |                       c = b.getElementsByTagName('i'); | |||
|  |                     (b.innerHTML = | |||
|  |                       '<!--[if gt IE ' + ++a + ']><i></i><![endif]-->'), | |||
|  |                       c[0]; | |||
|  | 
 | |||
|  |                   ); | |||
|  |                   return 4 < a ? a : n | |||
|  |                 })(), | |||
|  |               r = /\S+/g | |||
|  |             return { | |||
|  |               cc: ['authenticity_token', /^__RequestVerificationToken(_.*)?$/], | |||
|  |               q: function(a, b) { | |||
|  |                 for (var c = 0, d = a.length; c < d; c++) b(a[c], c) | |||
|  |               }, | |||
|  |               o: function(a, b) { | |||
|  |                 if ('function' == typeof Array.prototype.indexOf) | |||
|  |                   return Array.prototype.indexOf.call(a, b) | |||
|  |                 for (var c = 0, d = a.length; c < d; c++) | |||
|  |                   if (a[c] === b) return c | |||
|  |                 return -1 | |||
|  |               }, | |||
|  |               Sb: function(a, b, c) { | |||
|  |                 for (var d = 0, e = a.length; d < e; d++) | |||
|  |                   if (b.call(c, a[d], d)) return a[d] | |||
|  |                 return null | |||
|  |               }, | |||
|  |               La: function(b, c) { | |||
|  |                 var d = a.a.o(b, c) | |||
|  |                 0 < d ? b.splice(d, 1) : 0 === d && b.shift() | |||
|  |               }, | |||
|  |               Tb: function(b) { | |||
|  |                 b = b || [] | |||
|  |                 for (var c = [], d = 0, e = b.length; d < e; d++) | |||
|  |                   0 > a.a.o(c, b[d]) && c.push(b[d]) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               fb: function(a, b) { | |||
|  |                 a = a || [] | |||
|  |                 for (var c = [], d = 0, e = a.length; d < e; d++) | |||
|  |                   c.push(b(a[d], d)) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               Ka: function(a, b) { | |||
|  |                 a = a || [] | |||
|  |                 for (var c = [], d = 0, e = a.length; d < e; d++) | |||
|  |                   b(a[d], d) && c.push(a[d]) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               ra: function(a, b) { | |||
|  |                 if (b instanceof Array) a.push.apply(a, b) | |||
|  |                 else for (var c = 0, d = b.length; c < d; c++) a.push(b[c]) | |||
|  |                 return a | |||
|  |               }, | |||
|  |               pa: function(b, c, d) { | |||
|  |                 var e = a.a.o(a.a.zb(b), c) | |||
|  |                 0 > e ? d && b.push(c) : d || b.splice(e, 1) | |||
|  |               }, | |||
|  |               ka: f, | |||
|  |               extend: c, | |||
|  |               Xa: d, | |||
|  |               Ya: f ? d : c, | |||
|  |               D: b, | |||
|  |               Ca: function(a, b) { | |||
|  |                 if (!a) return a | |||
|  |                 var c = {}, | |||
|  |                   d | |||
|  |                 for (d in a) a.hasOwnProperty(d) && (c[d] = b(a[d], d, a)) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               ob: function(b) { | |||
|  |                 for (; b.firstChild; ) a.removeNode(b.firstChild) | |||
|  |               }, | |||
|  |               jc: function(b) { | |||
|  |                 b = a.a.V(b) | |||
|  |                 for ( | |||
|  |                   var c = ((b[0] && b[0].ownerDocument) || u).createElement( | |||
|  |                       'div' | |||
|  |                     ), | |||
|  |                     d = 0, | |||
|  |                     e = b.length; | |||
|  |                   d < e; | |||
|  |                   d++ | |||
|  |                 ) | |||
|  |                   c.appendChild(a.$(b[d])) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               ua: function(b, c) { | |||
|  |                 for (var d = 0, e = b.length, h = []; d < e; d++) { | |||
|  |                   var m = b[d].cloneNode(!0) | |||
|  |                   h.push(c ? a.$(m) : m) | |||
|  |                 } | |||
|  |                 return h | |||
|  |               }, | |||
|  |               da: function(b, c) { | |||
|  |                 a.a.ob(b) | |||
|  |                 if (c) | |||
|  |                   for (var d = 0, e = c.length; d < e; d++) b.appendChild(c[d]) | |||
|  |               }, | |||
|  |               qc: function(b, c) { | |||
|  |                 var d = b.nodeType ? [b] : b | |||
|  |                 if (0 < d.length) { | |||
|  |                   for ( | |||
|  |                     var e = d[0], h = e.parentNode, m = 0, l = c.length; | |||
|  |                     m < l; | |||
|  |                     m++ | |||
|  |                   ) | |||
|  |                     h.insertBefore(c[m], e) | |||
|  |                   m = 0 | |||
|  |                   for (l = d.length; m < l; m++) a.removeNode(d[m]) | |||
|  |                 } | |||
|  |               }, | |||
|  |               za: function(a, b) { | |||
|  |                 if (a.length) { | |||
|  |                   for ( | |||
|  |                     b = (8 === b.nodeType && b.parentNode) || b; | |||
|  |                     a.length && a[0].parentNode !== b; | |||
|  | 
 | |||
|  |                   ) | |||
|  |                     a.splice(0, 1) | |||
|  |                   for (; 1 < a.length && a[a.length - 1].parentNode !== b; ) | |||
|  |                     a.length-- | |||
|  |                   if (1 < a.length) { | |||
|  |                     var c = a[0], | |||
|  |                       d = a[a.length - 1] | |||
|  |                     for (a.length = 0; c !== d; ) a.push(c), (c = c.nextSibling) | |||
|  |                     a.push(d) | |||
|  |                   } | |||
|  |                 } | |||
|  |                 return a | |||
|  |               }, | |||
|  |               sc: function(a, b) { | |||
|  |                 7 > h ? a.setAttribute('selected', b) : (a.selected = b) | |||
|  |               }, | |||
|  |               $a: function(a) { | |||
|  |                 return null === a || a === n | |||
|  |                   ? '' | |||
|  |                   : a.trim | |||
|  |                   ? a.trim() | |||
|  |                   : a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, '') | |||
|  |               }, | |||
|  |               nd: function(a, b) { | |||
|  |                 a = a || '' | |||
|  |                 return b.length > a.length ? !1 : a.substring(0, b.length) === b | |||
|  |               }, | |||
|  |               Mc: function(a, b) { | |||
|  |                 if (a === b) return !0 | |||
|  |                 if (11 === a.nodeType) return !1 | |||
|  |                 if (b.contains) | |||
|  |                   return b.contains(3 === a.nodeType ? a.parentNode : a) | |||
|  |                 if (b.compareDocumentPosition) | |||
|  |                   return 16 == (b.compareDocumentPosition(a) & 16) | |||
|  |                 for (; a && a != b; ) a = a.parentNode | |||
|  |                 return !!a | |||
|  |               }, | |||
|  |               nb: function(b) { | |||
|  |                 return a.a.Mc(b, b.ownerDocument.documentElement) | |||
|  |               }, | |||
|  |               Qb: function(b) { | |||
|  |                 return !!a.a.Sb(b, a.a.nb) | |||
|  |               }, | |||
|  |               A: function(a) { | |||
|  |                 return a && a.tagName && a.tagName.toLowerCase() | |||
|  |               }, | |||
|  |               Wb: function(b) { | |||
|  |                 return a.onError | |||
|  |                   ? function() { | |||
|  |                       try { | |||
|  |                         return b.apply(this, arguments) | |||
|  |                       } catch (c) { | |||
|  |                         throw (a.onError && a.onError(c), c) | |||
|  |                       } | |||
|  |                     } | |||
|  |                   : b | |||
|  |               }, | |||
|  |               setTimeout: function(b, c) { | |||
|  |                 return setTimeout(a.a.Wb(b), c) | |||
|  |               }, | |||
|  |               $b: function(b) { | |||
|  |                 setTimeout(function() { | |||
|  |                   a.onError && a.onError(b) | |||
|  |                   throw b | |||
|  |                 }, 0) | |||
|  |               }, | |||
|  |               p: function(b, c, d) { | |||
|  |                 var e = a.a.Wb(d) | |||
|  |                 d = h && m[c] | |||
|  |                 if (a.options.useOnlyNativeEvents || d || !v) | |||
|  |                   if (d || 'function' != typeof b.addEventListener) | |||
|  |                     if ('undefined' != typeof b.attachEvent) { | |||
|  |                       var l = function(a) { | |||
|  |                           e.call(b, a) | |||
|  |                         }, | |||
|  |                         f = 'on' + c | |||
|  |                       b.attachEvent(f, l) | |||
|  |                       a.a.F.oa(b, function() { | |||
|  |                         b.detachEvent(f, l) | |||
|  |                       }) | |||
|  |                     } else | |||
|  |                       throw Error( | |||
|  |                         "Browser doesn't support addEventListener or attachEvent" | |||
|  |                       ) | |||
|  |                   else b.addEventListener(c, e, !1) | |||
|  |                 else v(b).bind(c, e) | |||
|  |               }, | |||
|  |               Da: function(b, c) { | |||
|  |                 if (!b || !b.nodeType) | |||
|  |                   throw Error( | |||
|  |                     'element must be a DOM node when calling triggerEvent' | |||
|  |                   ) | |||
|  |                 var d | |||
|  |                 'input' === a.a.A(b) && b.type && 'click' == c.toLowerCase() | |||
|  |                   ? ((d = b.type), (d = 'checkbox' == d || 'radio' == d)) | |||
|  |                   : (d = !1) | |||
|  |                 if (a.options.useOnlyNativeEvents || !v || d) | |||
|  |                   if ('function' == typeof u.createEvent) | |||
|  |                     if ('function' == typeof b.dispatchEvent) | |||
|  |                       (d = u.createEvent(l[c] || 'HTMLEvents')), | |||
|  |                         d.initEvent( | |||
|  |                           c, | |||
|  |                           !0, | |||
|  |                           !0, | |||
|  |                           x, | |||
|  |                           0, | |||
|  |                           0, | |||
|  |                           0, | |||
|  |                           0, | |||
|  |                           0, | |||
|  |                           !1, | |||
|  |                           !1, | |||
|  |                           !1, | |||
|  |                           !1, | |||
|  |                           0, | |||
|  |                           b | |||
|  |                         ), | |||
|  |                         b.dispatchEvent(d) | |||
|  |                     else | |||
|  |                       throw Error( | |||
|  |                         "The supplied element doesn't support dispatchEvent" | |||
|  |                       ) | |||
|  |                   else if (d && b.click) b.click() | |||
|  |                   else if ('undefined' != typeof b.fireEvent) | |||
|  |                     b.fireEvent('on' + c) | |||
|  |                   else throw Error("Browser doesn't support triggering events") | |||
|  |                 else v(b).trigger(c) | |||
|  |               }, | |||
|  |               c: function(b) { | |||
|  |                 return a.H(b) ? b() : b | |||
|  |               }, | |||
|  |               zb: function(b) { | |||
|  |                 return a.H(b) ? b.t() : b | |||
|  |               }, | |||
|  |               bb: function(b, c, d) { | |||
|  |                 var h | |||
|  |                 c && | |||
|  |                   ('object' === typeof b.classList | |||
|  |                     ? ((h = b.classList[d ? 'add' : 'remove']), | |||
|  |                       a.a.q(c.match(r), function(a) { | |||
|  |                         h.call(b.classList, a) | |||
|  |                       })) | |||
|  |                     : 'string' === typeof b.className.baseVal | |||
|  |                     ? e(b.className, 'baseVal', c, d) | |||
|  |                     : e(b, 'className', c, d)) | |||
|  |               }, | |||
|  |               Za: function(b, c) { | |||
|  |                 var d = a.a.c(c) | |||
|  |                 if (null === d || d === n) d = '' | |||
|  |                 var e = a.f.firstChild(b) | |||
|  |                 !e || 3 != e.nodeType || a.f.nextSibling(e) | |||
|  |                   ? a.f.da(b, [b.ownerDocument.createTextNode(d)]) | |||
|  |                   : (e.data = d) | |||
|  |                 a.a.Rc(b) | |||
|  |               }, | |||
|  |               rc: function(a, b) { | |||
|  |                 a.name = b | |||
|  |                 if (7 >= h) | |||
|  |                   try { | |||
|  |                     a.mergeAttributes( | |||
|  |                       u.createElement("<input name='" + a.name + "'/>"), | |||
|  |                       !1 | |||
|  |                     ) | |||
|  |                   } catch (c) {} | |||
|  |               }, | |||
|  |               Rc: function(a) { | |||
|  |                 9 <= h && | |||
|  |                   ((a = 1 == a.nodeType ? a : a.parentNode), | |||
|  |                   a.style && (a.style.zoom = a.style.zoom)) | |||
|  |               }, | |||
|  |               Nc: function(a) { | |||
|  |                 if (h) { | |||
|  |                   var b = a.style.width | |||
|  |                   a.style.width = 0 | |||
|  |                   a.style.width = b | |||
|  |                 } | |||
|  |               }, | |||
|  |               hd: function(b, c) { | |||
|  |                 b = a.a.c(b) | |||
|  |                 c = a.a.c(c) | |||
|  |                 for (var d = [], e = b; e <= c; e++) d.push(e) | |||
|  |                 return d | |||
|  |               }, | |||
|  |               V: function(a) { | |||
|  |                 for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c]) | |||
|  |                 return b | |||
|  |               }, | |||
|  |               Yb: function(a) { | |||
|  |                 return g ? Symbol(a) : a | |||
|  |               }, | |||
|  |               rd: 6 === h, | |||
|  |               sd: 7 === h, | |||
|  |               C: h, | |||
|  |               ec: function(b, c) { | |||
|  |                 for ( | |||
|  |                   var d = a.a | |||
|  |                       .V(b.getElementsByTagName('input')) | |||
|  |                       .concat(a.a.V(b.getElementsByTagName('textarea'))), | |||
|  |                     e = | |||
|  |                       'string' == typeof c | |||
|  |                         ? function(a) { | |||
|  |                             return a.name === c | |||
|  |                           } | |||
|  |                         : function(a) { | |||
|  |                             return c.test(a.name) | |||
|  |                           }, | |||
|  |                     h = [], | |||
|  |                     m = d.length - 1; | |||
|  |                   0 <= m; | |||
|  |                   m-- | |||
|  |                 ) | |||
|  |                   e(d[m]) && h.push(d[m]) | |||
|  |                 return h | |||
|  |               }, | |||
|  |               ed: function(b) { | |||
|  |                 return 'string' == typeof b && (b = a.a.$a(b)) | |||
|  |                   ? F && F.parse | |||
|  |                     ? F.parse(b) | |||
|  |                     : new Function('return ' + b)() | |||
|  |                   : null | |||
|  |               }, | |||
|  |               Eb: function(b, c, d) { | |||
|  |                 if (!F || !F.stringify) | |||
|  |                   throw Error( | |||
|  |                     "Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js" | |||
|  |                   ) | |||
|  |                 return F.stringify(a.a.c(b), c, d) | |||
|  |               }, | |||
|  |               fd: function(c, d, e) { | |||
|  |                 e = e || {} | |||
|  |                 var h = e.params || {}, | |||
|  |                   m = e.includeFields || this.cc, | |||
|  |                   l = c | |||
|  |                 if ('object' == typeof c && 'form' === a.a.A(c)) | |||
|  |                   for (var l = c.action, f = m.length - 1; 0 <= f; f--) | |||
|  |                     for (var g = a.a.ec(c, m[f]), k = g.length - 1; 0 <= k; k--) | |||
|  |                       h[g[k].name] = g[k].value | |||
|  |                 d = a.a.c(d) | |||
|  |                 var r = u.createElement('form') | |||
|  |                 r.style.display = 'none' | |||
|  |                 r.action = l | |||
|  |                 r.method = 'post' | |||
|  |                 for (var n in d) | |||
|  |                   (c = u.createElement('input')), | |||
|  |                     (c.type = 'hidden'), | |||
|  |                     (c.name = n), | |||
|  |                     (c.value = a.a.Eb(a.a.c(d[n]))), | |||
|  |                     r.appendChild(c) | |||
|  |                 b(h, function(a, b) { | |||
|  |                   var c = u.createElement('input') | |||
|  |                   c.type = 'hidden' | |||
|  |                   c.name = a | |||
|  |                   c.value = b | |||
|  |                   r.appendChild(c) | |||
|  |                 }) | |||
|  |                 u.body.appendChild(r) | |||
|  |                 e.submitter ? e.submitter(r) : r.submit() | |||
|  |                 setTimeout(function() { | |||
|  |                   r.parentNode.removeChild(r) | |||
|  |                 }, 0) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('utils', a.a) | |||
|  |           a.b('utils.arrayForEach', a.a.q) | |||
|  |           a.b('utils.arrayFirst', a.a.Sb) | |||
|  |           a.b('utils.arrayFilter', a.a.Ka) | |||
|  |           a.b('utils.arrayGetDistinctValues', a.a.Tb) | |||
|  |           a.b('utils.arrayIndexOf', a.a.o) | |||
|  |           a.b('utils.arrayMap', a.a.fb) | |||
|  |           a.b('utils.arrayPushAll', a.a.ra) | |||
|  |           a.b('utils.arrayRemoveItem', a.a.La) | |||
|  |           a.b('utils.extend', a.a.extend) | |||
|  |           a.b('utils.fieldsIncludedWithJsonPost', a.a.cc) | |||
|  |           a.b('utils.getFormFields', a.a.ec) | |||
|  |           a.b('utils.peekObservable', a.a.zb) | |||
|  |           a.b('utils.postJson', a.a.fd) | |||
|  |           a.b('utils.parseJson', a.a.ed) | |||
|  |           a.b('utils.registerEventHandler', a.a.p) | |||
|  |           a.b('utils.stringifyJson', a.a.Eb) | |||
|  |           a.b('utils.range', a.a.hd) | |||
|  |           a.b('utils.toggleDomNodeCssClass', a.a.bb) | |||
|  |           a.b('utils.triggerEvent', a.a.Da) | |||
|  |           a.b('utils.unwrapObservable', a.a.c) | |||
|  |           a.b('utils.objectForEach', a.a.D) | |||
|  |           a.b('utils.addOrRemoveItem', a.a.pa) | |||
|  |           a.b('utils.setTextContent', a.a.Za) | |||
|  |           a.b('unwrap', a.a.c) | |||
|  |           Function.prototype.bind || | |||
|  |             (Function.prototype.bind = function(a) { | |||
|  |               var c = this | |||
|  |               if (1 === arguments.length) | |||
|  |                 return function() { | |||
|  |                   return c.apply(a, arguments) | |||
|  |                 } | |||
|  |               var d = Array.prototype.slice.call(arguments, 1) | |||
|  |               return function() { | |||
|  |                 var e = d.slice(0) | |||
|  |                 e.push.apply(e, arguments) | |||
|  |                 return c.apply(a, e) | |||
|  |               } | |||
|  |             }) | |||
|  |           a.a.e = new (function() { | |||
|  |             function a(b, g) { | |||
|  |               var k = b[d] | |||
|  |               if (!k || 'null' === k || !e[k]) { | |||
|  |                 if (!g) return n | |||
|  |                 k = b[d] = 'ko' + c++ | |||
|  |                 e[k] = {} | |||
|  |               } | |||
|  |               return e[k] | |||
|  |             } | |||
|  | 
 | |||
|  |             var c = 0, | |||
|  |               d = '__ko__' + new Date().getTime(), | |||
|  |               e = {} | |||
|  |             return { | |||
|  |               get: function(c, d) { | |||
|  |                 var e = a(c, !1) | |||
|  |                 return e === n ? n : e[d] | |||
|  |               }, | |||
|  |               set: function(c, d, e) { | |||
|  |                 if (e !== n || a(c, !1) !== n) a(c, !0)[d] = e | |||
|  |               }, | |||
|  |               clear: function(a) { | |||
|  |                 var b = a[d] | |||
|  |                 return b ? (delete e[b], (a[d] = null), !0) : !1 | |||
|  |               }, | |||
|  |               I: function() { | |||
|  |                 return c++ + d | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('utils.domData', a.a.e) | |||
|  |           a.b('utils.domData.clear', a.a.e.clear) | |||
|  |           a.a.F = new (function() { | |||
|  |             function b(b, c) { | |||
|  |               var e = a.a.e.get(b, d) | |||
|  |               e === n && c && ((e = []), a.a.e.set(b, d, e)) | |||
|  |               return e | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(d) { | |||
|  |               var e = b(d, !1) | |||
|  |               if (e) for (var e = e.slice(0), l = 0; l < e.length; l++) e[l](d) | |||
|  |               a.a.e.clear(d) | |||
|  |               a.a.F.cleanExternalData(d) | |||
|  |               if (f[d.nodeType]) | |||
|  |                 for (e = d.firstChild; (d = e); ) | |||
|  |                   (e = d.nextSibling), 8 === d.nodeType && c(d) | |||
|  |             } | |||
|  | 
 | |||
|  |             var d = a.a.e.I(), | |||
|  |               e = { 1: !0, 8: !0, 9: !0 }, | |||
|  |               f = { 1: !0, 9: !0 } | |||
|  |             return { | |||
|  |               oa: function(a, c) { | |||
|  |                 if ('function' != typeof c) | |||
|  |                   throw Error('Callback must be a function') | |||
|  |                 b(a, !0).push(c) | |||
|  |               }, | |||
|  |               pc: function(c, e) { | |||
|  |                 var l = b(c, !1) | |||
|  |                 l && (a.a.La(l, e), 0 == l.length && a.a.e.set(c, d, n)) | |||
|  |               }, | |||
|  |               $: function(b) { | |||
|  |                 if (e[b.nodeType] && (c(b), f[b.nodeType])) { | |||
|  |                   var d = [] | |||
|  |                   a.a.ra(d, b.getElementsByTagName('*')) | |||
|  |                   for (var l = 0, m = d.length; l < m; l++) c(d[l]) | |||
|  |                 } | |||
|  |                 return b | |||
|  |               }, | |||
|  |               removeNode: function(b) { | |||
|  |                 a.$(b) | |||
|  |                 b.parentNode && b.parentNode.removeChild(b) | |||
|  |               }, | |||
|  |               cleanExternalData: function(a) { | |||
|  |                 v && 'function' == typeof v.cleanData && v.cleanData([a]) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.$ = a.a.F.$ | |||
|  |           a.removeNode = a.a.F.removeNode | |||
|  |           a.b('cleanNode', a.$) | |||
|  |           a.b('removeNode', a.removeNode) | |||
|  |           a.b('utils.domNodeDisposal', a.a.F) | |||
|  |           a.b('utils.domNodeDisposal.addDisposeCallback', a.a.F.oa) | |||
|  |           a.b('utils.domNodeDisposal.removeDisposeCallback', a.a.F.pc) | |||
|  |           ;(function() { | |||
|  |             var b = [0, '', ''], | |||
|  |               c = [1, '<table>', '</table>'], | |||
|  |               d = [3, '<table><tbody><tr>', '</tr></tbody></table>'], | |||
|  |               e = [1, "<select multiple='multiple'>", '</select>'], | |||
|  |               f = { | |||
|  |                 thead: c, | |||
|  |                 tbody: c, | |||
|  |                 tfoot: c, | |||
|  |                 tr: [2, '<table><tbody>', '</tbody></table>'], | |||
|  |                 td: d, | |||
|  |                 th: d, | |||
|  |                 option: e, | |||
|  |                 optgroup: e | |||
|  |               }, | |||
|  |               g = 8 >= a.a.C | |||
|  |             a.a.ma = function(c, d) { | |||
|  |               var e | |||
|  |               if (v) | |||
|  |                 if (v.parseHTML) e = v.parseHTML(c, d) || [] | |||
|  |                 else { | |||
|  |                   if ((e = v.clean([c], d)) && e[0]) { | |||
|  |                     for ( | |||
|  |                       var h = e[0]; | |||
|  |                       h.parentNode && 11 !== h.parentNode.nodeType; | |||
|  | 
 | |||
|  |                     ) | |||
|  |                       h = h.parentNode | |||
|  |                     h.parentNode && h.parentNode.removeChild(h) | |||
|  |                   } | |||
|  |                 } | |||
|  |               else { | |||
|  |                 ;(e = d) || (e = u) | |||
|  |                 var h = e.parentWindow || e.defaultView || x, | |||
|  |                   r = a.a.$a(c).toLowerCase(), | |||
|  |                   q = e.createElement('div'), | |||
|  |                   p | |||
|  |                 p = ((r = r.match(/^<([a-z]+)[ >]/)) && f[r[1]]) || b | |||
|  |                 r = p[0] | |||
|  |                 p = 'ignored<div>' + p[1] + c + p[2] + '</div>' | |||
|  |                 'function' == typeof h.innerShiv | |||
|  |                   ? q.appendChild(h.innerShiv(p)) | |||
|  |                   : (g && e.appendChild(q), | |||
|  |                     (q.innerHTML = p), | |||
|  |                     g && q.parentNode.removeChild(q)) | |||
|  |                 for (; r--; ) q = q.lastChild | |||
|  |                 e = a.a.V(q.lastChild.childNodes) | |||
|  |               } | |||
|  |               return e | |||
|  |             } | |||
|  |             a.a.Cb = function(b, c) { | |||
|  |               a.a.ob(b) | |||
|  |               c = a.a.c(c) | |||
|  |               if (null !== c && c !== n) | |||
|  |                 if (('string' != typeof c && (c = c.toString()), v)) | |||
|  |                   v(b).html(c) | |||
|  |                 else | |||
|  |                   for ( | |||
|  |                     var d = a.a.ma(c, b.ownerDocument), e = 0; | |||
|  |                     e < d.length; | |||
|  |                     e++ | |||
|  |                   ) | |||
|  |                     b.appendChild(d[e]) | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('utils.parseHtmlFragment', a.a.ma) | |||
|  |           a.b('utils.setHtml', a.a.Cb) | |||
|  |           a.M = (function() { | |||
|  |             function b(c, e) { | |||
|  |               if (c) | |||
|  |                 if (8 == c.nodeType) { | |||
|  |                   var f = a.M.lc(c.nodeValue) | |||
|  |                   null != f && e.push({ Lc: c, cd: f }) | |||
|  |                 } else if (1 == c.nodeType) | |||
|  |                   for (var f = 0, g = c.childNodes, k = g.length; f < k; f++) | |||
|  |                     b(g[f], e) | |||
|  |             } | |||
|  | 
 | |||
|  |             var c = {} | |||
|  |             return { | |||
|  |               wb: function(a) { | |||
|  |                 if ('function' != typeof a) | |||
|  |                   throw Error( | |||
|  |                     'You can only pass a function to ko.memoization.memoize()' | |||
|  |                   ) | |||
|  |                 var b = | |||
|  |                   ((4294967296 * (1 + Math.random())) | 0) | |||
|  |                     .toString(16) | |||
|  |                     .substring(1) + | |||
|  |                   ((4294967296 * (1 + Math.random())) | 0) | |||
|  |                     .toString(16) | |||
|  |                     .substring(1) | |||
|  |                 c[b] = a | |||
|  |                 return '<!--[ko_memo:' + b + ']-->' | |||
|  |               }, | |||
|  |               xc: function(a, b) { | |||
|  |                 var f = c[a] | |||
|  |                 if (f === n) | |||
|  |                   throw Error( | |||
|  |                     "Couldn't find any memo with ID " + | |||
|  |                       a + | |||
|  |                       ". Perhaps it's already been unmemoized." | |||
|  |                   ) | |||
|  |                 try { | |||
|  |                   return f.apply(null, b || []), !0 | |||
|  |                 } finally { | |||
|  |                   delete c[a] | |||
|  |                 } | |||
|  |               }, | |||
|  |               yc: function(c, e) { | |||
|  |                 var f = [] | |||
|  |                 b(c, f) | |||
|  |                 for (var g = 0, k = f.length; g < k; g++) { | |||
|  |                   var l = f[g].Lc, | |||
|  |                     m = [l] | |||
|  |                   e && a.a.ra(m, e) | |||
|  |                   a.M.xc(f[g].cd, m) | |||
|  |                   l.nodeValue = '' | |||
|  |                   l.parentNode && l.parentNode.removeChild(l) | |||
|  |                 } | |||
|  |               }, | |||
|  |               lc: function(a) { | |||
|  |                 return (a = a.match(/^\[ko_memo\:(.*?)\]$/)) ? a[1] : null | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('memoization', a.M) | |||
|  |           a.b('memoization.memoize', a.M.wb) | |||
|  |           a.b('memoization.unmemoize', a.M.xc) | |||
|  |           a.b('memoization.parseMemoText', a.M.lc) | |||
|  |           a.b('memoization.unmemoizeDomNodeAndDescendants', a.M.yc) | |||
|  |           a.Y = (function() { | |||
|  |             function b() { | |||
|  |               if (e) | |||
|  |                 for (var b = e, c = 0, m; g < e; ) | |||
|  |                   if ((m = d[g++])) { | |||
|  |                     if (g > b) { | |||
|  |                       if (5e3 <= ++c) { | |||
|  |                         g = e | |||
|  |                         a.a.$b( | |||
|  |                           Error( | |||
|  |                             "'Too much recursion' after processing " + | |||
|  |                               c + | |||
|  |                               ' task groups.' | |||
|  |                           ) | |||
|  |                         ) | |||
|  |                         break | |||
|  |                       } | |||
|  |                       b = e | |||
|  |                     } | |||
|  |                     try { | |||
|  |                       m() | |||
|  |                     } catch (h) { | |||
|  |                       a.a.$b(h) | |||
|  |                     } | |||
|  |                   } | |||
|  |             } | |||
|  | 
 | |||
|  |             function c() { | |||
|  |               b() | |||
|  |               g = e = d.length = 0 | |||
|  |             } | |||
|  | 
 | |||
|  |             var d = [], | |||
|  |               e = 0, | |||
|  |               f = 1, | |||
|  |               g = 0 | |||
|  |             return { | |||
|  |               scheduler: x.MutationObserver | |||
|  |                 ? (function(a) { | |||
|  |                     var b = u.createElement('div') | |||
|  |                     new MutationObserver(a).observe(b, { attributes: !0 }) | |||
|  |                     return function() { | |||
|  |                       b.classList.toggle('foo') | |||
|  |                     } | |||
|  |                   })(c) | |||
|  |                 : u && 'onreadystatechange' in u.createElement('script') | |||
|  |                 ? function(a) { | |||
|  |                     var b = u.createElement('script') | |||
|  |                     b.onreadystatechange = function() { | |||
|  |                       b.onreadystatechange = null | |||
|  |                       u.documentElement.removeChild(b) | |||
|  |                       b = null | |||
|  |                       a() | |||
|  |                     } | |||
|  |                     u.documentElement.appendChild(b) | |||
|  |                   } | |||
|  |                 : function(a) { | |||
|  |                     setTimeout(a, 0) | |||
|  |                   }, | |||
|  |               Wa: function(b) { | |||
|  |                 e || a.Y.scheduler(c) | |||
|  |                 d[e++] = b | |||
|  |                 return f++ | |||
|  |               }, | |||
|  |               cancel: function(a) { | |||
|  |                 a -= f - e | |||
|  |                 a >= g && a < e && (d[a] = null) | |||
|  |               }, | |||
|  |               resetForTesting: function() { | |||
|  |                 var a = e - g | |||
|  |                 g = e = d.length = 0 | |||
|  |                 return a | |||
|  |               }, | |||
|  |               md: b | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('tasks', a.Y) | |||
|  |           a.b('tasks.schedule', a.Y.Wa) | |||
|  |           a.b('tasks.runEarly', a.Y.md) | |||
|  |           a.ya = { | |||
|  |             throttle: function(b, c) { | |||
|  |               b.throttleEvaluation = c | |||
|  |               var d = null | |||
|  |               return a.B({ | |||
|  |                 read: b, | |||
|  |                 write: function(e) { | |||
|  |                   clearTimeout(d) | |||
|  |                   d = a.a.setTimeout(function() { | |||
|  |                     b(e) | |||
|  |                   }, c) | |||
|  |                 } | |||
|  |               }) | |||
|  |             }, | |||
|  |             rateLimit: function(a, c) { | |||
|  |               var d, e, f | |||
|  |               'number' == typeof c ? (d = c) : ((d = c.timeout), (e = c.method)) | |||
|  |               a.cb = !1 | |||
|  |               f = 'notifyWhenChangesStop' == e ? V : U | |||
|  |               a.Ta(function(a) { | |||
|  |                 return f(a, d) | |||
|  |               }) | |||
|  |             }, | |||
|  |             deferred: function(b, c) { | |||
|  |               if (!0 !== c) | |||
|  |                 throw Error( | |||
|  |                   "The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled." | |||
|  |                 ) | |||
|  |               b.cb || | |||
|  |                 ((b.cb = !0), | |||
|  |                 b.Ta(function(c) { | |||
|  |                   var e | |||
|  |                   return function() { | |||
|  |                     a.Y.cancel(e) | |||
|  |                     e = a.Y.Wa(c) | |||
|  |                     b.notifySubscribers(n, 'dirty') | |||
|  |                   } | |||
|  |                 })) | |||
|  |             }, | |||
|  |             notify: function(a, c) { | |||
|  |               a.equalityComparer = 'always' == c ? null : J | |||
|  |             } | |||
|  |           } | |||
|  |           var T = { undefined: 1, boolean: 1, number: 1, string: 1 } | |||
|  |           a.b('extenders', a.ya) | |||
|  |           a.vc = function(b, c, d) { | |||
|  |             this.ia = b | |||
|  |             this.gb = c | |||
|  |             this.Kc = d | |||
|  |             this.R = !1 | |||
|  |             a.G(this, 'dispose', this.k) | |||
|  |           } | |||
|  |           a.vc.prototype.k = function() { | |||
|  |             this.R = !0 | |||
|  |             this.Kc() | |||
|  |           } | |||
|  |           a.J = function() { | |||
|  |             a.a.Ya(this, D) | |||
|  |             D.rb(this) | |||
|  |           } | |||
|  |           var I = 'change', | |||
|  |             D = { | |||
|  |               rb: function(a) { | |||
|  |                 a.K = {} | |||
|  |                 a.Nb = 1 | |||
|  |               }, | |||
|  |               X: function(b, c, d) { | |||
|  |                 var e = this | |||
|  |                 d = d || I | |||
|  |                 var f = new a.vc(e, c ? b.bind(c) : b, function() { | |||
|  |                   a.a.La(e.K[d], f) | |||
|  |                   e.Ia && e.Ia(d) | |||
|  |                 }) | |||
|  |                 e.sa && e.sa(d) | |||
|  |                 e.K[d] || (e.K[d] = []) | |||
|  |                 e.K[d].push(f) | |||
|  |                 return f | |||
|  |               }, | |||
|  |               notifySubscribers: function(b, c) { | |||
|  |                 c = c || I | |||
|  |                 c === I && this.zc() | |||
|  |                 if (this.Pa(c)) | |||
|  |                   try { | |||
|  |                     a.l.Ub() | |||
|  |                     for (var d = this.K[c].slice(0), e = 0, f; (f = d[e]); ++e) | |||
|  |                       f.R || f.gb(b) | |||
|  |                   } finally { | |||
|  |                     a.l.end() | |||
|  |                   } | |||
|  |               }, | |||
|  |               Na: function() { | |||
|  |                 return this.Nb | |||
|  |               }, | |||
|  |               Uc: function(a) { | |||
|  |                 return this.Na() !== a | |||
|  |               }, | |||
|  |               zc: function() { | |||
|  |                 ++this.Nb | |||
|  |               }, | |||
|  |               Ta: function(b) { | |||
|  |                 var c = this, | |||
|  |                   d = a.H(c), | |||
|  |                   e, | |||
|  |                   f, | |||
|  |                   g | |||
|  |                 c.Ha || | |||
|  |                   ((c.Ha = c.notifySubscribers), (c.notifySubscribers = W)) | |||
|  |                 var k = b(function() { | |||
|  |                   c.Mb = !1 | |||
|  |                   d && g === c && (g = c()) | |||
|  |                   e = !1 | |||
|  |                   c.tb(f, g) && c.Ha((f = g)) | |||
|  |                 }) | |||
|  |                 c.Lb = function(a) { | |||
|  |                   c.Mb = e = !0 | |||
|  |                   g = a | |||
|  |                   k() | |||
|  |                 } | |||
|  |                 c.Kb = function(a) { | |||
|  |                   e || ((f = a), c.Ha(a, 'beforeChange')) | |||
|  |                 } | |||
|  |               }, | |||
|  |               Pa: function(a) { | |||
|  |                 return this.K[a] && this.K[a].length | |||
|  |               }, | |||
|  |               Sc: function(b) { | |||
|  |                 if (b) return (this.K[b] && this.K[b].length) || 0 | |||
|  |                 var c = 0 | |||
|  |                 a.a.D(this.K, function(a, b) { | |||
|  |                   'dirty' !== a && (c += b.length) | |||
|  |                 }) | |||
|  |                 return c | |||
|  |               }, | |||
|  |               tb: function(a, c) { | |||
|  |                 return !this.equalityComparer || !this.equalityComparer(a, c) | |||
|  |               }, | |||
|  |               extend: function(b) { | |||
|  |                 var c = this | |||
|  |                 b && | |||
|  |                   a.a.D(b, function(b, e) { | |||
|  |                     var f = a.ya[b] | |||
|  |                     'function' == typeof f && (c = f(c, e) || c) | |||
|  |                   }) | |||
|  |                 return c | |||
|  |               } | |||
|  |             } | |||
|  |           a.G(D, 'subscribe', D.X) | |||
|  |           a.G(D, 'extend', D.extend) | |||
|  |           a.G(D, 'getSubscriptionsCount', D.Sc) | |||
|  |           a.a.ka && a.a.Xa(D, Function.prototype) | |||
|  |           a.J.fn = D | |||
|  |           a.hc = function(a) { | |||
|  |             return ( | |||
|  |               null != a && | |||
|  |               'function' == typeof a.X && | |||
|  |               'function' == typeof a.notifySubscribers | |||
|  |             ) | |||
|  |           } | |||
|  |           a.b('subscribable', a.J) | |||
|  |           a.b('isSubscribable', a.hc) | |||
|  |           a.va = a.l = (function() { | |||
|  |             function b(a) { | |||
|  |               d.push(e) | |||
|  |               e = a | |||
|  |             } | |||
|  | 
 | |||
|  |             function c() { | |||
|  |               e = d.pop() | |||
|  |             } | |||
|  | 
 | |||
|  |             var d = [], | |||
|  |               e, | |||
|  |               f = 0 | |||
|  |             return { | |||
|  |               Ub: b, | |||
|  |               end: c, | |||
|  |               oc: function(b) { | |||
|  |                 if (e) { | |||
|  |                   if (!a.hc(b)) | |||
|  |                     throw Error( | |||
|  |                       'Only subscribable things can act as dependencies' | |||
|  |                     ) | |||
|  |                   e.gb.call(e.Gc, b, b.Cc || (b.Cc = ++f)) | |||
|  |                 } | |||
|  |               }, | |||
|  |               w: function(a, d, e) { | |||
|  |                 try { | |||
|  |                   return b(), a.apply(d, e || []) | |||
|  |                 } finally { | |||
|  |                   c() | |||
|  |                 } | |||
|  |               }, | |||
|  |               Aa: function() { | |||
|  |                 if (e) return e.m.Aa() | |||
|  |               }, | |||
|  |               Sa: function() { | |||
|  |                 if (e) return e.Sa | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('computedContext', a.va) | |||
|  |           a.b('computedContext.getDependenciesCount', a.va.Aa) | |||
|  |           a.b('computedContext.isInitial', a.va.Sa) | |||
|  |           a.b('ignoreDependencies', (a.qd = a.l.w)) | |||
|  |           var E = a.a.Yb('_latestValue') | |||
|  |           a.N = function(b) { | |||
|  |             function c() { | |||
|  |               if (0 < arguments.length) | |||
|  |                 return ( | |||
|  |                   c.tb(c[E], arguments[0]) && | |||
|  |                     (c.ga(), (c[E] = arguments[0]), c.fa()), | |||
|  |                   this | |||
|  |                 ) | |||
|  |               a.l.oc(c) | |||
|  |               return c[E] | |||
|  |             } | |||
|  | 
 | |||
|  |             c[E] = b | |||
|  |             a.a.ka || a.a.extend(c, a.J.fn) | |||
|  |             a.J.fn.rb(c) | |||
|  |             a.a.Ya(c, B) | |||
|  |             a.options.deferUpdates && a.ya.deferred(c, !0) | |||
|  |             return c | |||
|  |           } | |||
|  |           var B = { | |||
|  |             equalityComparer: J, | |||
|  |             t: function() { | |||
|  |               return this[E] | |||
|  |             }, | |||
|  |             fa: function() { | |||
|  |               this.notifySubscribers(this[E]) | |||
|  |             }, | |||
|  |             ga: function() { | |||
|  |               this.notifySubscribers(this[E], 'beforeChange') | |||
|  |             } | |||
|  |           } | |||
|  |           a.a.ka && a.a.Xa(B, a.J.fn) | |||
|  |           var H = (a.N.gd = '__ko_proto__') | |||
|  |           B[H] = a.N | |||
|  |           a.Oa = function(b, c) { | |||
|  |             return null === b || b === n || b[H] === n | |||
|  |               ? !1 | |||
|  |               : b[H] === c | |||
|  |               ? !0 | |||
|  |               : a.Oa(b[H], c) | |||
|  |           } | |||
|  |           a.H = function(b) { | |||
|  |             return a.Oa(b, a.N) | |||
|  |           } | |||
|  |           a.Ba = function(b) { | |||
|  |             return ('function' == typeof b && b[H] === a.N) || | |||
|  |               ('function' == typeof b && b[H] === a.B && b.Vc) | |||
|  |               ? !0 | |||
|  |               : !1 | |||
|  |           } | |||
|  |           a.b('observable', a.N) | |||
|  |           a.b('isObservable', a.H) | |||
|  |           a.b('isWriteableObservable', a.Ba) | |||
|  |           a.b('isWritableObservable', a.Ba) | |||
|  |           a.b('observable.fn', B) | |||
|  |           a.G(B, 'peek', B.t) | |||
|  |           a.G(B, 'valueHasMutated', B.fa) | |||
|  |           a.G(B, 'valueWillMutate', B.ga) | |||
|  |           a.la = function(b) { | |||
|  |             b = b || [] | |||
|  |             if ('object' != typeof b || !('length' in b)) | |||
|  |               throw Error( | |||
|  |                 'The argument passed when initializing an observable array must be an array, or null, or undefined.' | |||
|  |               ) | |||
|  |             b = a.N(b) | |||
|  |             a.a.Ya(b, a.la.fn) | |||
|  |             return b.extend({ trackArrayChanges: !0 }) | |||
|  |           } | |||
|  |           a.la.fn = { | |||
|  |             remove: function(b) { | |||
|  |               for ( | |||
|  |                 var c = this.t(), | |||
|  |                   d = [], | |||
|  |                   e = | |||
|  |                     'function' != typeof b || a.H(b) | |||
|  |                       ? function(a) { | |||
|  |                           return a === b | |||
|  |                         } | |||
|  |                       : b, | |||
|  |                   f = 0; | |||
|  |                 f < c.length; | |||
|  |                 f++ | |||
|  |               ) { | |||
|  |                 var g = c[f] | |||
|  |                 e(g) && | |||
|  |                   (0 === d.length && this.ga(), d.push(g), c.splice(f, 1), f--) | |||
|  |               } | |||
|  |               d.length && this.fa() | |||
|  |               return d | |||
|  |             }, | |||
|  |             removeAll: function(b) { | |||
|  |               if (b === n) { | |||
|  |                 var c = this.t(), | |||
|  |                   d = c.slice(0) | |||
|  |                 this.ga() | |||
|  |                 c.splice(0, c.length) | |||
|  |                 this.fa() | |||
|  |                 return d | |||
|  |               } | |||
|  |               return b | |||
|  |                 ? this.remove(function(c) { | |||
|  |                     return 0 <= a.a.o(b, c) | |||
|  |                   }) | |||
|  |                 : [] | |||
|  |             }, | |||
|  |             destroy: function(b) { | |||
|  |               var c = this.t(), | |||
|  |                 d = | |||
|  |                   'function' != typeof b || a.H(b) | |||
|  |                     ? function(a) { | |||
|  |                         return a === b | |||
|  |                       } | |||
|  |                     : b | |||
|  |               this.ga() | |||
|  |               for (var e = c.length - 1; 0 <= e; e--) | |||
|  |                 d(c[e]) && (c[e]._destroy = !0) | |||
|  |               this.fa() | |||
|  |             }, | |||
|  |             destroyAll: function(b) { | |||
|  |               return b === n | |||
|  |                 ? this.destroy(function() { | |||
|  |                     return !0 | |||
|  |                   }) | |||
|  |                 : b | |||
|  |                 ? this.destroy(function(c) { | |||
|  |                     return 0 <= a.a.o(b, c) | |||
|  |                   }) | |||
|  |                 : [] | |||
|  |             }, | |||
|  |             indexOf: function(b) { | |||
|  |               var c = this() | |||
|  |               return a.a.o(c, b) | |||
|  |             }, | |||
|  |             replace: function(a, c) { | |||
|  |               var d = this.indexOf(a) | |||
|  |               0 <= d && (this.ga(), (this.t()[d] = c), this.fa()) | |||
|  |             } | |||
|  |           } | |||
|  |           a.a.ka && a.a.Xa(a.la.fn, a.N.fn) | |||
|  |           a.a.q( | |||
|  |             'pop push reverse shift sort splice unshift'.split(' '), | |||
|  |             function(b) { | |||
|  |               a.la.fn[b] = function() { | |||
|  |                 var a = this.t() | |||
|  |                 this.ga() | |||
|  |                 this.Vb(a, b, arguments) | |||
|  |                 var d = a[b].apply(a, arguments) | |||
|  |                 this.fa() | |||
|  |                 return d === a ? this : d | |||
|  |               } | |||
|  |             } | |||
|  |           ) | |||
|  |           a.a.q(['slice'], function(b) { | |||
|  |             a.la.fn[b] = function() { | |||
|  |               var a = this() | |||
|  |               return a[b].apply(a, arguments) | |||
|  |             } | |||
|  |           }) | |||
|  |           a.b('observableArray', a.la) | |||
|  |           a.ya.trackArrayChanges = function(b, c) { | |||
|  |             function d() { | |||
|  |               if (!e) { | |||
|  |                 e = !0 | |||
|  |                 var c = b.notifySubscribers | |||
|  |                 b.notifySubscribers = function(a, b) { | |||
|  |                   ;(b && b !== I) || ++k | |||
|  |                   return c.apply(this, arguments) | |||
|  |                 } | |||
|  |                 var d = [].concat(b.t() || []) | |||
|  |                 f = null | |||
|  |                 g = b.X(function(c) { | |||
|  |                   c = [].concat(c || []) | |||
|  |                   if (b.Pa('arrayChange')) { | |||
|  |                     var e | |||
|  |                     if (!f || 1 < k) f = a.a.ib(d, c, b.hb) | |||
|  |                     e = f | |||
|  |                   } | |||
|  |                   d = c | |||
|  |                   f = null | |||
|  |                   k = 0 | |||
|  |                   e && e.length && b.notifySubscribers(e, 'arrayChange') | |||
|  |                 }) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             b.hb = {} | |||
|  |             c && 'object' == typeof c && a.a.extend(b.hb, c) | |||
|  |             b.hb.sparse = !0 | |||
|  |             if (!b.Vb) { | |||
|  |               var e = !1, | |||
|  |                 f = null, | |||
|  |                 g, | |||
|  |                 k = 0, | |||
|  |                 l = b.sa, | |||
|  |                 m = b.Ia | |||
|  |               b.sa = function(a) { | |||
|  |                 l && l.call(b, a) | |||
|  |                 'arrayChange' === a && d() | |||
|  |               } | |||
|  |               b.Ia = function(a) { | |||
|  |                 m && m.call(b, a) | |||
|  |                 'arrayChange' !== a || b.Pa('arrayChange') || (g.k(), (e = !1)) | |||
|  |               } | |||
|  |               b.Vb = function(b, c, d) { | |||
|  |                 function m(a, b, c) { | |||
|  |                   return (l[l.length] = { status: a, value: b, index: c }) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (e && !k) { | |||
|  |                   var l = [], | |||
|  |                     g = b.length, | |||
|  |                     t = d.length, | |||
|  |                     G = 0 | |||
|  |                   switch (c) { | |||
|  |                     case 'push': | |||
|  |                       G = g | |||
|  |                     case 'unshift': | |||
|  |                       for (c = 0; c < t; c++) m('added', d[c], G + c) | |||
|  |                       break | |||
|  |                     case 'pop': | |||
|  |                       G = g - 1 | |||
|  |                     case 'shift': | |||
|  |                       g && m('deleted', b[G], G) | |||
|  |                       break | |||
|  |                     case 'splice': | |||
|  |                       c = Math.min(Math.max(0, 0 > d[0] ? g + d[0] : d[0]), g) | |||
|  |                       for ( | |||
|  |                         var g = 1 === t ? g : Math.min(c + (d[1] || 0), g), | |||
|  |                           t = c + t - 2, | |||
|  |                           G = Math.max(g, t), | |||
|  |                           P = [], | |||
|  |                           n = [], | |||
|  |                           Q = 2; | |||
|  |                         c < G; | |||
|  |                         ++c, ++Q | |||
|  |                       ) | |||
|  |                         c < g && n.push(m('deleted', b[c], c)), | |||
|  |                           c < t && P.push(m('added', d[Q], c)) | |||
|  |                       a.a.dc(n, P) | |||
|  |                       break | |||
|  |                     default: | |||
|  |                       return | |||
|  |                   } | |||
|  |                   f = l | |||
|  |                 } | |||
|  |               } | |||
|  |             } | |||
|  |           } | |||
|  |           var s = a.a.Yb('_state') | |||
|  |           a.m = a.B = function(b, c, d) { | |||
|  |             function e() { | |||
|  |               if (0 < arguments.length) { | |||
|  |                 if ('function' === typeof f) f.apply(g.pb, arguments) | |||
|  |                 else | |||
|  |                   throw Error( | |||
|  |                     "Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters." | |||
|  |                   ) | |||
|  |                 return this | |||
|  |               } | |||
|  |               a.l.oc(e) | |||
|  |               ;(g.S || (g.s && e.Qa())) && e.aa() | |||
|  |               return g.T | |||
|  |             } | |||
|  | 
 | |||
|  |             'object' === typeof b ? (d = b) : ((d = d || {}), b && (d.read = b)) | |||
|  |             if ('function' != typeof d.read) | |||
|  |               throw Error( | |||
|  |                 'Pass a function that returns the value of the ko.computed' | |||
|  |               ) | |||
|  |             var f = d.write, | |||
|  |               g = { | |||
|  |                 T: n, | |||
|  |                 S: !0, | |||
|  |                 Ra: !1, | |||
|  |                 Fb: !1, | |||
|  |                 R: !1, | |||
|  |                 Va: !1, | |||
|  |                 s: !1, | |||
|  |                 jd: d.read, | |||
|  |                 pb: c || d.owner, | |||
|  |                 i: d.disposeWhenNodeIsRemoved || d.i || null, | |||
|  |                 wa: d.disposeWhen || d.wa, | |||
|  |                 mb: null, | |||
|  |                 r: {}, | |||
|  |                 L: 0, | |||
|  |                 bc: null | |||
|  |               } | |||
|  |             e[s] = g | |||
|  |             e.Vc = 'function' === typeof f | |||
|  |             a.a.ka || a.a.extend(e, a.J.fn) | |||
|  |             a.J.fn.rb(e) | |||
|  |             a.a.Ya(e, z) | |||
|  |             d.pure | |||
|  |               ? ((g.Va = !0), (g.s = !0), a.a.extend(e, $)) | |||
|  |               : d.deferEvaluation && a.a.extend(e, aa) | |||
|  |             a.options.deferUpdates && a.ya.deferred(e, !0) | |||
|  |             g.i && ((g.Fb = !0), g.i.nodeType || (g.i = null)) | |||
|  |             g.s || d.deferEvaluation || e.aa() | |||
|  |             g.i && | |||
|  |               e.ba() && | |||
|  |               a.a.F.oa( | |||
|  |                 g.i, | |||
|  |                 (g.mb = function() { | |||
|  |                   e.k() | |||
|  |                 }) | |||
|  |               ) | |||
|  |             return e | |||
|  |           } | |||
|  |           var z = { | |||
|  |               equalityComparer: J, | |||
|  |               Aa: function() { | |||
|  |                 return this[s].L | |||
|  |               }, | |||
|  |               Pb: function(a, c, d) { | |||
|  |                 if (this[s].Va && c === this) | |||
|  |                   throw Error( | |||
|  |                     "A 'pure' computed must not be called recursively" | |||
|  |                   ) | |||
|  |                 this[s].r[a] = d | |||
|  |                 d.Ga = this[s].L++ | |||
|  |                 d.na = c.Na() | |||
|  |               }, | |||
|  |               Qa: function() { | |||
|  |                 var a, | |||
|  |                   c, | |||
|  |                   d = this[s].r | |||
|  |                 for (a in d) | |||
|  |                   if (d.hasOwnProperty(a) && ((c = d[a]), c.ia.Uc(c.na))) | |||
|  |                     return !0 | |||
|  |               }, | |||
|  |               bd: function() { | |||
|  |                 this.Fa && !this[s].Ra && this.Fa() | |||
|  |               }, | |||
|  |               ba: function() { | |||
|  |                 return this[s].S || 0 < this[s].L | |||
|  |               }, | |||
|  |               ld: function() { | |||
|  |                 this.Mb || this.ac() | |||
|  |               }, | |||
|  |               uc: function(a) { | |||
|  |                 if (a.cb && !this[s].i) { | |||
|  |                   var c = a.X(this.bd, this, 'dirty'), | |||
|  |                     d = a.X(this.ld, this) | |||
|  |                   return { | |||
|  |                     ia: a, | |||
|  |                     k: function() { | |||
|  |                       c.k() | |||
|  |                       d.k() | |||
|  |                     } | |||
|  |                   } | |||
|  |                 } | |||
|  |                 return a.X(this.ac, this) | |||
|  |               }, | |||
|  |               ac: function() { | |||
|  |                 var b = this, | |||
|  |                   c = b.throttleEvaluation | |||
|  |                 c && 0 <= c | |||
|  |                   ? (clearTimeout(this[s].bc), | |||
|  |                     (this[s].bc = a.a.setTimeout(function() { | |||
|  |                       b.aa(!0) | |||
|  |                     }, c))) | |||
|  |                   : b.Fa | |||
|  |                   ? b.Fa() | |||
|  |                   : b.aa(!0) | |||
|  |               }, | |||
|  |               aa: function(b) { | |||
|  |                 var c = this[s], | |||
|  |                   d = c.wa | |||
|  |                 if (!c.Ra && !c.R) { | |||
|  |                   if ((c.i && !a.a.nb(c.i)) || (d && d())) { | |||
|  |                     if (!c.Fb) { | |||
|  |                       this.k() | |||
|  |                       return | |||
|  |                     } | |||
|  |                   } else c.Fb = !1 | |||
|  |                   c.Ra = !0 | |||
|  |                   try { | |||
|  |                     this.Qc(b) | |||
|  |                   } finally { | |||
|  |                     c.Ra = !1 | |||
|  |                   } | |||
|  |                   c.L || this.k() | |||
|  |                 } | |||
|  |               }, | |||
|  |               Qc: function(b) { | |||
|  |                 var c = this[s], | |||
|  |                   d = c.Va ? n : !c.L, | |||
|  |                   e = { Hc: this, Ma: c.r, lb: c.L } | |||
|  |                 a.l.Ub({ Gc: e, gb: Y, m: this, Sa: d }) | |||
|  |                 c.r = {} | |||
|  |                 c.L = 0 | |||
|  |                 e = this.Pc(c, e) | |||
|  |                 this.tb(c.T, e) && | |||
|  |                   (c.s || this.notifySubscribers(c.T, 'beforeChange'), | |||
|  |                   (c.T = e), | |||
|  |                   c.s ? this.zc() : b && this.notifySubscribers(c.T)) | |||
|  |                 d && this.notifySubscribers(c.T, 'awake') | |||
|  |               }, | |||
|  |               Pc: function(b, c) { | |||
|  |                 try { | |||
|  |                   var d = b.jd | |||
|  |                   return b.pb ? d.call(b.pb) : d() | |||
|  |                 } finally { | |||
|  |                   a.l.end(), c.lb && !b.s && a.a.D(c.Ma, X), (b.S = !1) | |||
|  |                 } | |||
|  |               }, | |||
|  |               t: function() { | |||
|  |                 var a = this[s] | |||
|  |                 ;((a.S && !a.L) || (a.s && this.Qa())) && this.aa() | |||
|  |                 return a.T | |||
|  |               }, | |||
|  |               Ta: function(b) { | |||
|  |                 a.J.fn.Ta.call(this, b) | |||
|  |                 this.Fa = function() { | |||
|  |                   this.Kb(this[s].T) | |||
|  |                   this[s].S = !0 | |||
|  |                   this.Lb(this) | |||
|  |                 } | |||
|  |               }, | |||
|  |               k: function() { | |||
|  |                 var b = this[s] | |||
|  |                 !b.s && | |||
|  |                   b.r && | |||
|  |                   a.a.D(b.r, function(a, b) { | |||
|  |                     b.k && b.k() | |||
|  |                   }) | |||
|  |                 b.i && b.mb && a.a.F.pc(b.i, b.mb) | |||
|  |                 b.r = null | |||
|  |                 b.L = 0 | |||
|  |                 b.R = !0 | |||
|  |                 b.S = !1 | |||
|  |                 b.s = !1 | |||
|  |                 b.i = null | |||
|  |               } | |||
|  |             }, | |||
|  |             $ = { | |||
|  |               sa: function(b) { | |||
|  |                 var c = this, | |||
|  |                   d = c[s] | |||
|  |                 if (!d.R && d.s && 'change' == b) { | |||
|  |                   d.s = !1 | |||
|  |                   if (d.S || c.Qa()) (d.r = null), (d.L = 0), (d.S = !0), c.aa() | |||
|  |                   else { | |||
|  |                     var e = [] | |||
|  |                     a.a.D(d.r, function(a, b) { | |||
|  |                       e[b.Ga] = a | |||
|  |                     }) | |||
|  |                     a.a.q(e, function(a, b) { | |||
|  |                       var e = d.r[a], | |||
|  |                         l = c.uc(e.ia) | |||
|  |                       l.Ga = b | |||
|  |                       l.na = e.na | |||
|  |                       d.r[a] = l | |||
|  |                     }) | |||
|  |                   } | |||
|  |                   d.R || c.notifySubscribers(d.T, 'awake') | |||
|  |                 } | |||
|  |               }, | |||
|  |               Ia: function(b) { | |||
|  |                 var c = this[s] | |||
|  |                 c.R || | |||
|  |                   'change' != b || | |||
|  |                   this.Pa('change') || | |||
|  |                   (a.a.D(c.r, function(a, b) { | |||
|  |                     b.k && ((c.r[a] = { ia: b.ia, Ga: b.Ga, na: b.na }), b.k()) | |||
|  |                   }), | |||
|  |                   (c.s = !0), | |||
|  |                   this.notifySubscribers(n, 'asleep')) | |||
|  |               }, | |||
|  |               Na: function() { | |||
|  |                 var b = this[s] | |||
|  |                 b.s && (b.S || this.Qa()) && this.aa() | |||
|  |                 return a.J.fn.Na.call(this) | |||
|  |               } | |||
|  |             }, | |||
|  |             aa = { | |||
|  |               sa: function(a) { | |||
|  |                 ;('change' != a && 'beforeChange' != a) || this.t() | |||
|  |               } | |||
|  |             } | |||
|  |           a.a.ka && a.a.Xa(z, a.J.fn) | |||
|  |           var R = a.N.gd | |||
|  |           a.m[R] = a.N | |||
|  |           z[R] = a.m | |||
|  |           a.Xc = function(b) { | |||
|  |             return a.Oa(b, a.m) | |||
|  |           } | |||
|  |           a.Yc = function(b) { | |||
|  |             return a.Oa(b, a.m) && b[s] && b[s].Va | |||
|  |           } | |||
|  |           a.b('computed', a.m) | |||
|  |           a.b('dependentObservable', a.m) | |||
|  |           a.b('isComputed', a.Xc) | |||
|  |           a.b('isPureComputed', a.Yc) | |||
|  |           a.b('computed.fn', z) | |||
|  |           a.G(z, 'peek', z.t) | |||
|  |           a.G(z, 'dispose', z.k) | |||
|  |           a.G(z, 'isActive', z.ba) | |||
|  |           a.G(z, 'getDependenciesCount', z.Aa) | |||
|  |           a.nc = function(b, c) { | |||
|  |             if ('function' === typeof b) return a.m(b, c, { pure: !0 }) | |||
|  |             b = a.a.extend({}, b) | |||
|  |             b.pure = !0 | |||
|  |             return a.m(b, c) | |||
|  |           } | |||
|  |           a.b('pureComputed', a.nc) | |||
|  |           ;(function() { | |||
|  |             function b(a, f, g) { | |||
|  |               g = g || new d() | |||
|  |               a = f(a) | |||
|  |               if ( | |||
|  |                 'object' != typeof a || | |||
|  |                 null === a || | |||
|  |                 a === n || | |||
|  |                 a instanceof RegExp || | |||
|  |                 a instanceof Date || | |||
|  |                 a instanceof String || | |||
|  |                 a instanceof Number || | |||
|  |                 a instanceof Boolean | |||
|  |               ) | |||
|  |                 return a | |||
|  |               var k = a instanceof Array ? [] : {} | |||
|  |               g.save(a, k) | |||
|  |               c(a, function(c) { | |||
|  |                 var d = f(a[c]) | |||
|  |                 switch (typeof d) { | |||
|  |                   case 'boolean': | |||
|  |                   case 'number': | |||
|  |                   case 'string': | |||
|  |                   case 'function': | |||
|  |                     k[c] = d | |||
|  |                     break | |||
|  |                   case 'object': | |||
|  |                   case 'undefined': | |||
|  |                     var h = g.get(d) | |||
|  |                     k[c] = h !== n ? h : b(d, f, g) | |||
|  |                 } | |||
|  |               }) | |||
|  |               return k | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(a, b) { | |||
|  |               if (a instanceof Array) { | |||
|  |                 for (var c = 0; c < a.length; c++) b(c) | |||
|  |                 'function' == typeof a.toJSON && b('toJSON') | |||
|  |               } else for (c in a) b(c) | |||
|  |             } | |||
|  | 
 | |||
|  |             function d() { | |||
|  |               this.keys = [] | |||
|  |               this.Ib = [] | |||
|  |             } | |||
|  | 
 | |||
|  |             a.wc = function(c) { | |||
|  |               if (0 == arguments.length) | |||
|  |                 throw Error( | |||
|  |                   'When calling ko.toJS, pass the object you want to convert.' | |||
|  |                 ) | |||
|  |               return b(c, function(b) { | |||
|  |                 for (var c = 0; a.H(b) && 10 > c; c++) b = b() | |||
|  |                 return b | |||
|  |               }) | |||
|  |             } | |||
|  |             a.toJSON = function(b, c, d) { | |||
|  |               b = a.wc(b) | |||
|  |               return a.a.Eb(b, c, d) | |||
|  |             } | |||
|  |             d.prototype = { | |||
|  |               save: function(b, c) { | |||
|  |                 var d = a.a.o(this.keys, b) | |||
|  |                 0 <= d ? (this.Ib[d] = c) : (this.keys.push(b), this.Ib.push(c)) | |||
|  |               }, | |||
|  |               get: function(b) { | |||
|  |                 b = a.a.o(this.keys, b) | |||
|  |                 return 0 <= b ? this.Ib[b] : n | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('toJS', a.wc) | |||
|  |           a.b('toJSON', a.toJSON) | |||
|  |           ;(function() { | |||
|  |             a.j = { | |||
|  |               u: function(b) { | |||
|  |                 switch (a.a.A(b)) { | |||
|  |                   case 'option': | |||
|  |                     return !0 === b.__ko__hasDomDataOptionValue__ | |||
|  |                       ? a.a.e.get(b, a.d.options.xb) | |||
|  |                       : 7 >= a.a.C | |||
|  |                       ? b.getAttributeNode('value') && | |||
|  |                         b.getAttributeNode('value').specified | |||
|  |                         ? b.value | |||
|  |                         : b.text | |||
|  |                       : b.value | |||
|  |                   case 'select': | |||
|  |                     return 0 <= b.selectedIndex | |||
|  |                       ? a.j.u(b.options[b.selectedIndex]) | |||
|  |                       : n | |||
|  |                   default: | |||
|  |                     return b.value | |||
|  |                 } | |||
|  |               }, | |||
|  |               ha: function(b, c, d) { | |||
|  |                 switch (a.a.A(b)) { | |||
|  |                   case 'option': | |||
|  |                     switch (typeof c) { | |||
|  |                       case 'string': | |||
|  |                         a.a.e.set(b, a.d.options.xb, n) | |||
|  |                         '__ko__hasDomDataOptionValue__' in b && | |||
|  |                           delete b.__ko__hasDomDataOptionValue__ | |||
|  |                         b.value = c | |||
|  |                         break | |||
|  |                       default: | |||
|  |                         a.a.e.set(b, a.d.options.xb, c), | |||
|  |                           (b.__ko__hasDomDataOptionValue__ = !0), | |||
|  |                           (b.value = 'number' === typeof c ? c : '') | |||
|  |                     } | |||
|  |                     break | |||
|  |                   case 'select': | |||
|  |                     if ('' === c || null === c) c = n | |||
|  |                     for (var e = -1, f = 0, g = b.options.length, k; f < g; ++f) | |||
|  |                       if ( | |||
|  |                         ((k = a.j.u(b.options[f])), | |||
|  |                         k == c || ('' == k && c === n)) | |||
|  |                       ) { | |||
|  |                         e = f | |||
|  |                         break | |||
|  |                       } | |||
|  |                     if (d || 0 <= e || (c === n && 1 < b.size)) | |||
|  |                       b.selectedIndex = e | |||
|  |                     break | |||
|  |                   default: | |||
|  |                     if (null === c || c === n) c = '' | |||
|  |                     b.value = c | |||
|  |                 } | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('selectExtensions', a.j) | |||
|  |           a.b('selectExtensions.readValue', a.j.u) | |||
|  |           a.b('selectExtensions.writeValue', a.j.ha) | |||
|  |           a.h = (function() { | |||
|  |             function b(b) { | |||
|  |               b = a.a.$a(b) | |||
|  |               123 === b.charCodeAt(0) && (b = b.slice(1, -1)) | |||
|  |               var c = [], | |||
|  |                 d = b.match(e), | |||
|  |                 r, | |||
|  |                 k = [], | |||
|  |                 p = 0 | |||
|  |               if (d) { | |||
|  |                 d.push(',') | |||
|  |                 for (var A = 0, y; (y = d[A]); ++A) { | |||
|  |                   var t = y.charCodeAt(0) | |||
|  |                   if (44 === t) { | |||
|  |                     if (0 >= p) { | |||
|  |                       c.push( | |||
|  |                         r && k.length | |||
|  |                           ? { key: r, value: k.join('') } | |||
|  |                           : { unknown: r || k.join('') } | |||
|  |                       ) | |||
|  |                       r = p = 0 | |||
|  |                       k = [] | |||
|  |                       continue | |||
|  |                     } | |||
|  |                   } else if (58 === t) { | |||
|  |                     if (!p && !r && 1 === k.length) { | |||
|  |                       r = k.pop() | |||
|  |                       continue | |||
|  |                     } | |||
|  |                   } else | |||
|  |                     47 === t && A && 1 < y.length | |||
|  |                       ? (t = d[A - 1].match(f)) && | |||
|  |                         !g[t[0]] && | |||
|  |                         ((b = b.substr(b.indexOf(y) + 1)), | |||
|  |                         (d = b.match(e)), | |||
|  |                         d.push(','), | |||
|  |                         (A = -1), | |||
|  |                         (y = '/')) | |||
|  |                       : 40 === t || 123 === t || 91 === t | |||
|  |                       ? ++p | |||
|  |                       : 41 === t || 125 === t || 93 === t | |||
|  |                       ? --p | |||
|  |                       : r || | |||
|  |                         k.length || | |||
|  |                         (34 !== t && 39 !== t) || | |||
|  |                         (y = y.slice(1, -1)) | |||
|  |                   k.push(y) | |||
|  |                 } | |||
|  |               } | |||
|  |               return c | |||
|  |             } | |||
|  | 
 | |||
|  |             var c = ['true', 'false', 'null', 'undefined'], | |||
|  |               d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i, | |||
|  |               e = RegExp( | |||
|  |                 '"(?:[^"\\\\]|\\\\.)*"|\'(?:[^\'\\\\]|\\\\.)*\'|/(?:[^/\\\\]|\\\\.)*/w*|[^\\s:,/][^,"\'{}()/:[\\]]*[^\\s,"\'{}()/:[\\]]|[^\\s]', | |||
|  |                 'g' | |||
|  |               ), | |||
|  |               f = /[\])"'A-Za-z0-9_$]+$/, | |||
|  |               g = { in: 1, return: 1, typeof: 1 }, | |||
|  |               k = {} | |||
|  |             return { | |||
|  |               ta: [], | |||
|  |               ea: k, | |||
|  |               yb: b, | |||
|  |               Ua: function(e, m) { | |||
|  |                 function h(b, e) { | |||
|  |                   var m | |||
|  |                   if (!A) { | |||
|  |                     var l = a.getBindingHandler(b) | |||
|  |                     if (l && l.preprocess && !(e = l.preprocess(e, b, h))) | |||
|  |                       return | |||
|  |                     if ((l = k[b])) | |||
|  |                       (m = e), | |||
|  |                         0 <= a.a.o(c, m) | |||
|  |                           ? (m = !1) | |||
|  |                           : ((l = m.match(d)), | |||
|  |                             (m = | |||
|  |                               null === l | |||
|  |                                 ? !1 | |||
|  |                                 : l[1] | |||
|  |                                 ? 'Object(' + l[1] + ')' + l[2] | |||
|  |                                 : m)), | |||
|  |                         (l = m) | |||
|  |                     l && g.push("'" + b + "':function(_z){" + m + '=_z}') | |||
|  |                   } | |||
|  |                   p && (e = 'function(){return ' + e + ' }') | |||
|  |                   f.push("'" + b + "':" + e) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 m = m || {} | |||
|  |                 var f = [], | |||
|  |                   g = [], | |||
|  |                   p = m.valueAccessors, | |||
|  |                   A = m.bindingParams, | |||
|  |                   y = 'string' === typeof e ? b(e) : e | |||
|  |                 a.a.q(y, function(a) { | |||
|  |                   h(a.key || a.unknown, a.value) | |||
|  |                 }) | |||
|  |                 g.length && h('_ko_property_writers', '{' + g.join(',') + ' }') | |||
|  |                 return f.join(',') | |||
|  |               }, | |||
|  |               ad: function(a, b) { | |||
|  |                 for (var c = 0; c < a.length; c++) if (a[c].key == b) return !0 | |||
|  |                 return !1 | |||
|  |               }, | |||
|  |               Ea: function(b, c, d, e, f) { | |||
|  |                 if (b && a.H(b)) !a.Ba(b) || (f && b.t() === e) || b(e) | |||
|  |                 else if ((b = c.get('_ko_property_writers')) && b[d]) b[d](e) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('expressionRewriting', a.h) | |||
|  |           a.b('expressionRewriting.bindingRewriteValidators', a.h.ta) | |||
|  |           a.b('expressionRewriting.parseObjectLiteral', a.h.yb) | |||
|  |           a.b('expressionRewriting.preProcessBindings', a.h.Ua) | |||
|  |           a.b('expressionRewriting._twoWayBindings', a.h.ea) | |||
|  |           a.b('jsonExpressionRewriting', a.h) | |||
|  |           a.b('jsonExpressionRewriting.insertPropertyAccessorsIntoJson', a.h.Ua) | |||
|  |           ;(function() { | |||
|  |             function b(a) { | |||
|  |               return 8 == a.nodeType && g.test(f ? a.text : a.nodeValue) | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(a) { | |||
|  |               return 8 == a.nodeType && k.test(f ? a.text : a.nodeValue) | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(a, d) { | |||
|  |               for (var e = a, f = 1, l = []; (e = e.nextSibling); ) { | |||
|  |                 if (c(e) && (f--, 0 === f)) return l | |||
|  |                 l.push(e) | |||
|  |                 b(e) && f++ | |||
|  |               } | |||
|  |               if (!d) | |||
|  |                 throw Error( | |||
|  |                   'Cannot find closing comment tag to match: ' + a.nodeValue | |||
|  |                 ) | |||
|  |               return null | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(a, b) { | |||
|  |               var c = d(a, b) | |||
|  |               return c | |||
|  |                 ? 0 < c.length | |||
|  |                   ? c[c.length - 1].nextSibling | |||
|  |                   : a.nextSibling | |||
|  |                 : null | |||
|  |             } | |||
|  | 
 | |||
|  |             var f = u && '<!--test-->' === u.createComment('test').text, | |||
|  |               g = f | |||
|  |                 ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/ | |||
|  |                 : /^\s*ko(?:\s+([\s\S]+))?\s*$/, | |||
|  |               k = f ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/, | |||
|  |               l = { ul: !0, ol: !0 } | |||
|  |             a.f = { | |||
|  |               Z: {}, | |||
|  |               childNodes: function(a) { | |||
|  |                 return b(a) ? d(a) : a.childNodes | |||
|  |               }, | |||
|  |               xa: function(c) { | |||
|  |                 if (b(c)) { | |||
|  |                   c = a.f.childNodes(c) | |||
|  |                   for (var d = 0, e = c.length; d < e; d++) a.removeNode(c[d]) | |||
|  |                 } else a.a.ob(c) | |||
|  |               }, | |||
|  |               da: function(c, d) { | |||
|  |                 if (b(c)) { | |||
|  |                   a.f.xa(c) | |||
|  |                   for (var e = c.nextSibling, f = 0, l = d.length; f < l; f++) | |||
|  |                     e.parentNode.insertBefore(d[f], e) | |||
|  |                 } else a.a.da(c, d) | |||
|  |               }, | |||
|  |               mc: function(a, c) { | |||
|  |                 b(a) | |||
|  |                   ? a.parentNode.insertBefore(c, a.nextSibling) | |||
|  |                   : a.firstChild | |||
|  |                   ? a.insertBefore(c, a.firstChild) | |||
|  |                   : a.appendChild(c) | |||
|  |               }, | |||
|  |               gc: function(c, d, e) { | |||
|  |                 e | |||
|  |                   ? b(c) | |||
|  |                     ? c.parentNode.insertBefore(d, e.nextSibling) | |||
|  |                     : e.nextSibling | |||
|  |                     ? c.insertBefore(d, e.nextSibling) | |||
|  |                     : c.appendChild(d) | |||
|  |                   : a.f.mc(c, d) | |||
|  |               }, | |||
|  |               firstChild: function(a) { | |||
|  |                 return b(a) | |||
|  |                   ? !a.nextSibling || c(a.nextSibling) | |||
|  |                     ? null | |||
|  |                     : a.nextSibling | |||
|  |                   : a.firstChild | |||
|  |               }, | |||
|  |               nextSibling: function(a) { | |||
|  |                 b(a) && (a = e(a)) | |||
|  |                 return a.nextSibling && c(a.nextSibling) ? null : a.nextSibling | |||
|  |               }, | |||
|  |               Tc: b, | |||
|  |               pd: function(a) { | |||
|  |                 return (a = (f ? a.text : a.nodeValue).match(g)) ? a[1] : null | |||
|  |               }, | |||
|  |               kc: function(d) { | |||
|  |                 if (l[a.a.A(d)]) { | |||
|  |                   var h = d.firstChild | |||
|  |                   if (h) { | |||
|  |                     do | |||
|  |                       if (1 === h.nodeType) { | |||
|  |                         var f | |||
|  |                         f = h.firstChild | |||
|  |                         var g = null | |||
|  |                         if (f) { | |||
|  |                           do | |||
|  |                             if (g) g.push(f) | |||
|  |                             else if (b(f)) { | |||
|  |                               var k = e(f, !0) | |||
|  |                               k ? (f = k) : (g = [f]) | |||
|  |                             } else c(f) && (g = [f]) | |||
|  |                           while ((f = f.nextSibling)) | |||
|  |                         } | |||
|  |                         if ((f = g)) | |||
|  |                           for (g = h.nextSibling, k = 0; k < f.length; k++) | |||
|  |                             g ? d.insertBefore(f[k], g) : d.appendChild(f[k]) | |||
|  |                       } | |||
|  |                     while ((h = h.nextSibling)) | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('virtualElements', a.f) | |||
|  |           a.b('virtualElements.allowedBindings', a.f.Z) | |||
|  |           a.b('virtualElements.emptyNode', a.f.xa) | |||
|  |           a.b('virtualElements.insertAfter', a.f.gc) | |||
|  |           a.b('virtualElements.prepend', a.f.mc) | |||
|  |           a.b('virtualElements.setDomNodeChildren', a.f.da) | |||
|  |           ;(function() { | |||
|  |             a.Q = function() { | |||
|  |               this.Fc = {} | |||
|  |             } | |||
|  |             a.a.extend(a.Q.prototype, { | |||
|  |               nodeHasBindings: function(b) { | |||
|  |                 switch (b.nodeType) { | |||
|  |                   case 1: | |||
|  |                     return ( | |||
|  |                       null != b.getAttribute('data-bind') || | |||
|  |                       a.g.getComponentNameForNode(b) | |||
|  |                     ) | |||
|  |                   case 8: | |||
|  |                     return a.f.Tc(b) | |||
|  |                   default: | |||
|  |                     return !1 | |||
|  |                 } | |||
|  |               }, | |||
|  |               getBindings: function(b, c) { | |||
|  |                 var d = this.getBindingsString(b, c), | |||
|  |                   d = d ? this.parseBindingsString(d, c, b) : null | |||
|  |                 return a.g.Ob(d, b, c, !1) | |||
|  |               }, | |||
|  |               getBindingAccessors: function(b, c) { | |||
|  |                 var d = this.getBindingsString(b, c), | |||
|  |                   d = d | |||
|  |                     ? this.parseBindingsString(d, c, b, { valueAccessors: !0 }) | |||
|  |                     : null | |||
|  |                 return a.g.Ob(d, b, c, !0) | |||
|  |               }, | |||
|  |               getBindingsString: function(b) { | |||
|  |                 switch (b.nodeType) { | |||
|  |                   case 1: | |||
|  |                     return b.getAttribute('data-bind') | |||
|  |                   case 8: | |||
|  |                     return a.f.pd(b) | |||
|  |                   default: | |||
|  |                     return null | |||
|  |                 } | |||
|  |               }, | |||
|  |               parseBindingsString: function(b, c, d, e) { | |||
|  |                 try { | |||
|  |                   var f = this.Fc, | |||
|  |                     g = b + ((e && e.valueAccessors) || ''), | |||
|  |                     k | |||
|  |                   if (!(k = f[g])) { | |||
|  |                     var l, | |||
|  |                       m = | |||
|  |                         'with($context){with($data||{}){return{' + | |||
|  |                         a.h.Ua(b, e) + | |||
|  |                         '}}}' | |||
|  |                     l = new Function('$context', '$element', m) | |||
|  |                     k = f[g] = l | |||
|  |                   } | |||
|  |                   return k(c, d) | |||
|  |                 } catch (h) { | |||
|  |                   throw ((h.message = | |||
|  |                     'Unable to parse bindings.\nBindings value: ' + | |||
|  |                     b + | |||
|  |                     '\nMessage: ' + | |||
|  |                     h.message), | |||
|  |                   h) | |||
|  |                 } | |||
|  |               } | |||
|  |             }) | |||
|  |             a.Q.instance = new a.Q() | |||
|  |           })() | |||
|  |           a.b('bindingProvider', a.Q) | |||
|  |           ;(function() { | |||
|  |             function b(a) { | |||
|  |               return function() { | |||
|  |                 return a | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(a) { | |||
|  |               return a() | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(b) { | |||
|  |               return a.a.Ca(a.l.w(b), function(a, c) { | |||
|  |                 return function() { | |||
|  |                   return b()[c] | |||
|  |                 } | |||
|  |               }) | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(c, e, h) { | |||
|  |               return 'function' === typeof c | |||
|  |                 ? d(c.bind(null, e, h)) | |||
|  |                 : a.a.Ca(c, b) | |||
|  |             } | |||
|  | 
 | |||
|  |             function f(a, b) { | |||
|  |               return d(this.getBindings.bind(this, a, b)) | |||
|  |             } | |||
|  | 
 | |||
|  |             function g(b, c, d) { | |||
|  |               var e, | |||
|  |                 h = a.f.firstChild(c), | |||
|  |                 f = a.Q.instance, | |||
|  |                 m = f.preprocessNode | |||
|  |               if (m) { | |||
|  |                 for (; (e = h); ) (h = a.f.nextSibling(e)), m.call(f, e) | |||
|  |                 h = a.f.firstChild(c) | |||
|  |               } | |||
|  |               for (; (e = h); ) (h = a.f.nextSibling(e)), k(b, e, d) | |||
|  |             } | |||
|  | 
 | |||
|  |             function k(b, c, d) { | |||
|  |               var e = !0, | |||
|  |                 h = 1 === c.nodeType | |||
|  |               h && a.f.kc(c) | |||
|  |               if ((h && d) || a.Q.instance.nodeHasBindings(c)) | |||
|  |                 e = m(c, null, b, d).shouldBindDescendants | |||
|  |               e && !r[a.a.A(c)] && g(b, c, !h) | |||
|  |             } | |||
|  | 
 | |||
|  |             function l(b) { | |||
|  |               var c = [], | |||
|  |                 d = {}, | |||
|  |                 e = [] | |||
|  |               a.a.D(b, function Z(h) { | |||
|  |                 if (!d[h]) { | |||
|  |                   var f = a.getBindingHandler(h) | |||
|  |                   f && | |||
|  |                     (f.after && | |||
|  |                       (e.push(h), | |||
|  |                       a.a.q(f.after, function(c) { | |||
|  |                         if (b[c]) { | |||
|  |                           if (-1 !== a.a.o(e, c)) | |||
|  |                             throw Error( | |||
|  |                               'Cannot combine the following bindings, because they have a cyclic dependency: ' + | |||
|  |                                 e.join(', ') | |||
|  |                             ) | |||
|  |                           Z(c) | |||
|  |                         } | |||
|  |                       }), | |||
|  |                       e.length--), | |||
|  |                     c.push({ key: h, fc: f })) | |||
|  |                   d[h] = !0 | |||
|  |                 } | |||
|  |               }) | |||
|  |               return c | |||
|  |             } | |||
|  | 
 | |||
|  |             function m(b, d, e, h) { | |||
|  |               var m = a.a.e.get(b, q) | |||
|  |               if (!d) { | |||
|  |                 if (m) | |||
|  |                   throw Error( | |||
|  |                     'You cannot apply bindings multiple times to the same element.' | |||
|  |                   ) | |||
|  |                 a.a.e.set(b, q, !0) | |||
|  |               } | |||
|  |               !m && h && a.tc(b, e) | |||
|  |               var g | |||
|  |               if (d && 'function' !== typeof d) g = d | |||
|  |               else { | |||
|  |                 var k = a.Q.instance, | |||
|  |                   r = k.getBindingAccessors || f, | |||
|  |                   p = a.B( | |||
|  |                     function() { | |||
|  |                       ;(g = d ? d(e, b) : r.call(k, b, e)) && e.P && e.P() | |||
|  |                       return g | |||
|  |                     }, | |||
|  |                     null, | |||
|  |                     { i: b } | |||
|  |                   ) | |||
|  |                 ;(g && p.ba()) || (p = null) | |||
|  |               } | |||
|  |               var u | |||
|  |               if (g) { | |||
|  |                 var v = p | |||
|  |                     ? function(a) { | |||
|  |                         return function() { | |||
|  |                           return c(p()[a]) | |||
|  |                         } | |||
|  |                       } | |||
|  |                     : function(a) { | |||
|  |                         return g[a] | |||
|  |                       }, | |||
|  |                   s = function() { | |||
|  |                     return a.a.Ca(p ? p() : g, c) | |||
|  |                   } | |||
|  |                 s.get = function(a) { | |||
|  |                   return g[a] && c(v(a)) | |||
|  |                 } | |||
|  |                 s.has = function(a) { | |||
|  |                   return a in g | |||
|  |                 } | |||
|  |                 h = l(g) | |||
|  |                 a.a.q(h, function(c) { | |||
|  |                   var d = c.fc.init, | |||
|  |                     h = c.fc.update, | |||
|  |                     f = c.key | |||
|  |                   if (8 === b.nodeType && !a.f.Z[f]) | |||
|  |                     throw Error( | |||
|  |                       "The binding '" + | |||
|  |                         f + | |||
|  |                         "' cannot be used with virtual elements" | |||
|  |                     ) | |||
|  |                   try { | |||
|  |                     'function' == typeof d && | |||
|  |                       a.l.w(function() { | |||
|  |                         var a = d(b, v(f), s, e.$data, e) | |||
|  |                         if (a && a.controlsDescendantBindings) { | |||
|  |                           if (u !== n) | |||
|  |                             throw Error( | |||
|  |                               'Multiple bindings (' + | |||
|  |                                 u + | |||
|  |                                 ' and ' + | |||
|  |                                 f + | |||
|  |                                 ') are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.' | |||
|  |                             ) | |||
|  |                           u = f | |||
|  |                         } | |||
|  |                       }), | |||
|  |                       'function' == typeof h && | |||
|  |                         a.B( | |||
|  |                           function() { | |||
|  |                             h(b, v(f), s, e.$data, e) | |||
|  |                           }, | |||
|  |                           null, | |||
|  |                           { i: b } | |||
|  |                         ) | |||
|  |                   } catch (m) { | |||
|  |                     throw ((m.message = | |||
|  |                       'Unable to process binding "' + | |||
|  |                       f + | |||
|  |                       ': ' + | |||
|  |                       g[f] + | |||
|  |                       '"\nMessage: ' + | |||
|  |                       m.message), | |||
|  |                     m) | |||
|  |                   } | |||
|  |                 }) | |||
|  |               } | |||
|  |               return { shouldBindDescendants: u === n } | |||
|  |             } | |||
|  | 
 | |||
|  |             function h(b) { | |||
|  |               return b && b instanceof a.U ? b : new a.U(b) | |||
|  |             } | |||
|  | 
 | |||
|  |             a.d = {} | |||
|  |             var r = { script: !0, textarea: !0, template: !0 } | |||
|  |             a.getBindingHandler = function(b) { | |||
|  |               return a.d[b] | |||
|  |             } | |||
|  |             a.U = function(b, c, d, e) { | |||
|  |               var h = this, | |||
|  |                 f = 'function' == typeof b && !a.H(b), | |||
|  |                 m, | |||
|  |                 g = a.B( | |||
|  |                   function() { | |||
|  |                     var m = f ? b() : b, | |||
|  |                       l = a.a.c(m) | |||
|  |                     c | |||
|  |                       ? (c.P && c.P(), a.a.extend(h, c), g && (h.P = g)) | |||
|  |                       : ((h.$parents = []), (h.$root = l), (h.ko = a)) | |||
|  |                     h.$rawData = m | |||
|  |                     h.$data = l | |||
|  |                     d && (h[d] = l) | |||
|  |                     e && e(h, c, l) | |||
|  |                     return h.$data | |||
|  |                   }, | |||
|  |                   null, | |||
|  |                   { | |||
|  |                     wa: function() { | |||
|  |                       return m && !a.a.Qb(m) | |||
|  |                     }, | |||
|  |                     i: !0 | |||
|  |                   } | |||
|  |                 ) | |||
|  |               g.ba() && | |||
|  |                 ((h.P = g), | |||
|  |                 (g.equalityComparer = null), | |||
|  |                 (m = []), | |||
|  |                 (g.Ac = function(b) { | |||
|  |                   m.push(b) | |||
|  |                   a.a.F.oa(b, function(b) { | |||
|  |                     a.a.La(m, b) | |||
|  |                     m.length || (g.k(), (h.P = g = n)) | |||
|  |                   }) | |||
|  |                 })) | |||
|  |             } | |||
|  |             a.U.prototype.createChildContext = function(b, c, d) { | |||
|  |               return new a.U(b, this, c, function(a, b) { | |||
|  |                 a.$parentContext = b | |||
|  |                 a.$parent = b.$data | |||
|  |                 a.$parents = (b.$parents || []).slice(0) | |||
|  |                 a.$parents.unshift(a.$parent) | |||
|  |                 d && d(a) | |||
|  |               }) | |||
|  |             } | |||
|  |             a.U.prototype.extend = function(b) { | |||
|  |               return new a.U(this.P || this.$data, this, null, function(c, d) { | |||
|  |                 c.$rawData = d.$rawData | |||
|  |                 a.a.extend(c, 'function' == typeof b ? b() : b) | |||
|  |               }) | |||
|  |             } | |||
|  |             var q = a.a.e.I(), | |||
|  |               p = a.a.e.I() | |||
|  |             a.tc = function(b, c) { | |||
|  |               if (2 == arguments.length) a.a.e.set(b, p, c), c.P && c.P.Ac(b) | |||
|  |               else return a.a.e.get(b, p) | |||
|  |             } | |||
|  |             a.Ja = function(b, c, d) { | |||
|  |               1 === b.nodeType && a.f.kc(b) | |||
|  |               return m(b, c, h(d), !0) | |||
|  |             } | |||
|  |             a.Dc = function(b, c, d) { | |||
|  |               d = h(d) | |||
|  |               return a.Ja(b, e(c, d, b), d) | |||
|  |             } | |||
|  |             a.eb = function(a, b) { | |||
|  |               ;(1 !== b.nodeType && 8 !== b.nodeType) || g(h(a), b, !0) | |||
|  |             } | |||
|  |             a.Rb = function(a, b) { | |||
|  |               !v && x.jQuery && (v = x.jQuery) | |||
|  |               if (b && 1 !== b.nodeType && 8 !== b.nodeType) | |||
|  |                 throw Error( | |||
|  |                   'ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node' | |||
|  |                 ) | |||
|  |               b = b || x.document.body | |||
|  |               k(h(a), b, !0) | |||
|  |             } | |||
|  |             a.kb = function(b) { | |||
|  |               switch (b.nodeType) { | |||
|  |                 case 1: | |||
|  |                 case 8: | |||
|  |                   var c = a.tc(b) | |||
|  |                   if (c) return c | |||
|  |                   if (b.parentNode) return a.kb(b.parentNode) | |||
|  |               } | |||
|  |               return n | |||
|  |             } | |||
|  |             a.Jc = function(b) { | |||
|  |               return (b = a.kb(b)) ? b.$data : n | |||
|  |             } | |||
|  |             a.b('bindingHandlers', a.d) | |||
|  |             a.b('applyBindings', a.Rb) | |||
|  |             a.b('applyBindingsToDescendants', a.eb) | |||
|  |             a.b('applyBindingAccessorsToNode', a.Ja) | |||
|  |             a.b('applyBindingsToNode', a.Dc) | |||
|  |             a.b('contextFor', a.kb) | |||
|  |             a.b('dataFor', a.Jc) | |||
|  |           })() | |||
|  |           ;(function(b) { | |||
|  |             function c(c, e) { | |||
|  |               var m = f.hasOwnProperty(c) ? f[c] : b, | |||
|  |                 h | |||
|  |               m | |||
|  |                 ? m.X(e) | |||
|  |                 : ((m = f[c] = new a.J()), | |||
|  |                   m.X(e), | |||
|  |                   d(c, function(b, d) { | |||
|  |                     var e = !(!d || !d.synchronous) | |||
|  |                     g[c] = { definition: b, Zc: e } | |||
|  |                     delete f[c] | |||
|  |                     h || e | |||
|  |                       ? m.notifySubscribers(b) | |||
|  |                       : a.Y.Wa(function() { | |||
|  |                           m.notifySubscribers(b) | |||
|  |                         }) | |||
|  |                   }), | |||
|  |                   (h = !0)) | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(a, b) { | |||
|  |               e('getConfig', [a], function(c) { | |||
|  |                 c | |||
|  |                   ? e('loadComponent', [a, c], function(a) { | |||
|  |                       b(a, c) | |||
|  |                     }) | |||
|  |                   : b(null, null) | |||
|  |               }) | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(c, d, f, h) { | |||
|  |               h || (h = a.g.loaders.slice(0)) | |||
|  |               var g = h.shift() | |||
|  |               if (g) { | |||
|  |                 var q = g[c] | |||
|  |                 if (q) { | |||
|  |                   var p = !1 | |||
|  |                   if ( | |||
|  |                     q.apply( | |||
|  |                       g, | |||
|  |                       d.concat(function(a) { | |||
|  |                         p ? f(null) : null !== a ? f(a) : e(c, d, f, h) | |||
|  |                       }) | |||
|  |                     ) !== b && | |||
|  |                     ((p = !0), !g.suppressLoaderExceptions) | |||
|  |                   ) | |||
|  |                     throw Error( | |||
|  |                       'Component loaders must supply values by invoking the callback, not by returning values synchronously.' | |||
|  |                     ) | |||
|  |                 } else e(c, d, f, h) | |||
|  |               } else f(null) | |||
|  |             } | |||
|  | 
 | |||
|  |             var f = {}, | |||
|  |               g = {} | |||
|  |             a.g = { | |||
|  |               get: function(d, e) { | |||
|  |                 var f = g.hasOwnProperty(d) ? g[d] : b | |||
|  |                 f | |||
|  |                   ? f.Zc | |||
|  |                     ? a.l.w(function() { | |||
|  |                         e(f.definition) | |||
|  |                       }) | |||
|  |                     : a.Y.Wa(function() { | |||
|  |                         e(f.definition) | |||
|  |                       }) | |||
|  |                   : c(d, e) | |||
|  |               }, | |||
|  |               Xb: function(a) { | |||
|  |                 delete g[a] | |||
|  |               }, | |||
|  |               Jb: e | |||
|  |             } | |||
|  |             a.g.loaders = [] | |||
|  |             a.b('components', a.g) | |||
|  |             a.b('components.get', a.g.get) | |||
|  |             a.b('components.clearCachedDefinition', a.g.Xb) | |||
|  |           })() | |||
|  |           ;(function() { | |||
|  |             function b(b, c, d, e) { | |||
|  |               function g() { | |||
|  |                 0 === --y && e(k) | |||
|  |               } | |||
|  | 
 | |||
|  |               var k = {}, | |||
|  |                 y = 2, | |||
|  |                 t = d.template | |||
|  |               d = d.viewModel | |||
|  |               t | |||
|  |                 ? f(c, t, function(c) { | |||
|  |                     a.g.Jb('loadTemplate', [b, c], function(a) { | |||
|  |                       k.template = a | |||
|  |                       g() | |||
|  |                     }) | |||
|  |                   }) | |||
|  |                 : g() | |||
|  |               d | |||
|  |                 ? f(c, d, function(c) { | |||
|  |                     a.g.Jb('loadViewModel', [b, c], function(a) { | |||
|  |                       k[l] = a | |||
|  |                       g() | |||
|  |                     }) | |||
|  |                   }) | |||
|  |                 : g() | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(a, b, d) { | |||
|  |               if ('function' === typeof b) | |||
|  |                 d(function(a) { | |||
|  |                   return new b(a) | |||
|  |                 }) | |||
|  |               else if ('function' === typeof b[l]) d(b[l]) | |||
|  |               else if ('instance' in b) { | |||
|  |                 var e = b.instance | |||
|  |                 d(function() { | |||
|  |                   return e | |||
|  |                 }) | |||
|  |               } else | |||
|  |                 'viewModel' in b | |||
|  |                   ? c(a, b.viewModel, d) | |||
|  |                   : a('Unknown viewModel value: ' + b) | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(b) { | |||
|  |               switch (a.a.A(b)) { | |||
|  |                 case 'script': | |||
|  |                   return a.a.ma(b.text) | |||
|  |                 case 'textarea': | |||
|  |                   return a.a.ma(b.value) | |||
|  |                 case 'template': | |||
|  |                   if (e(b.content)) return a.a.ua(b.content.childNodes) | |||
|  |               } | |||
|  |               return a.a.ua(b.childNodes) | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(a) { | |||
|  |               return x.DocumentFragment | |||
|  |                 ? a instanceof DocumentFragment | |||
|  |                 : a && 11 === a.nodeType | |||
|  |             } | |||
|  | 
 | |||
|  |             function f(a, b, c) { | |||
|  |               'string' === typeof b.require | |||
|  |                 ? O || x.require | |||
|  |                   ? (O || x.require)([b.require], c) | |||
|  |                   : a('Uses require, but no AMD loader is present') | |||
|  |                 : c(b) | |||
|  |             } | |||
|  | 
 | |||
|  |             function g(a) { | |||
|  |               return function(b) { | |||
|  |                 throw Error("Component '" + a + "': " + b) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             var k = {} | |||
|  |             a.g.register = function(b, c) { | |||
|  |               if (!c) throw Error('Invalid configuration for ' + b) | |||
|  |               if (a.g.ub(b)) | |||
|  |                 throw Error('Component ' + b + ' is already registered') | |||
|  |               k[b] = c | |||
|  |             } | |||
|  |             a.g.ub = function(a) { | |||
|  |               return k.hasOwnProperty(a) | |||
|  |             } | |||
|  |             a.g.od = function(b) { | |||
|  |               delete k[b] | |||
|  |               a.g.Xb(b) | |||
|  |             } | |||
|  |             a.g.Zb = { | |||
|  |               getConfig: function(a, b) { | |||
|  |                 b(k.hasOwnProperty(a) ? k[a] : null) | |||
|  |               }, | |||
|  |               loadComponent: function(a, c, d) { | |||
|  |                 var e = g(a) | |||
|  |                 f(e, c, function(c) { | |||
|  |                   b(a, e, c, d) | |||
|  |                 }) | |||
|  |               }, | |||
|  |               loadTemplate: function(b, c, f) { | |||
|  |                 b = g(b) | |||
|  |                 if ('string' === typeof c) f(a.a.ma(c)) | |||
|  |                 else if (c instanceof Array) f(c) | |||
|  |                 else if (e(c)) f(a.a.V(c.childNodes)) | |||
|  |                 else if (c.element) | |||
|  |                   if ( | |||
|  |                     ((c = c.element), | |||
|  |                     x.HTMLElement | |||
|  |                       ? c instanceof HTMLElement | |||
|  |                       : c && c.tagName && 1 === c.nodeType) | |||
|  |                   ) | |||
|  |                     f(d(c)) | |||
|  |                   else if ('string' === typeof c) { | |||
|  |                     var l = u.getElementById(c) | |||
|  |                     l ? f(d(l)) : b('Cannot find element with ID ' + c) | |||
|  |                   } else b('Unknown element type: ' + c) | |||
|  |                 else b('Unknown template value: ' + c) | |||
|  |               }, | |||
|  |               loadViewModel: function(a, b, d) { | |||
|  |                 c(g(a), b, d) | |||
|  |               } | |||
|  |             } | |||
|  |             var l = 'createViewModel' | |||
|  |             a.b('components.register', a.g.register) | |||
|  |             a.b('components.isRegistered', a.g.ub) | |||
|  |             a.b('components.unregister', a.g.od) | |||
|  |             a.b('components.defaultLoader', a.g.Zb) | |||
|  |             a.g.loaders.push(a.g.Zb) | |||
|  |             a.g.Bc = k | |||
|  |           })() | |||
|  |           ;(function() { | |||
|  |             function b(b, e) { | |||
|  |               var f = b.getAttribute('params') | |||
|  |               if (f) { | |||
|  |                 var f = c.parseBindingsString(f, e, b, { | |||
|  |                     valueAccessors: !0, | |||
|  |                     bindingParams: !0 | |||
|  |                   }), | |||
|  |                   f = a.a.Ca(f, function(c) { | |||
|  |                     return a.m(c, null, { i: b }) | |||
|  |                   }), | |||
|  |                   g = a.a.Ca(f, function(c) { | |||
|  |                     var e = c.t() | |||
|  |                     return c.ba() | |||
|  |                       ? a.m({ | |||
|  |                           read: function() { | |||
|  |                             return a.a.c(c()) | |||
|  |                           }, | |||
|  |                           write: | |||
|  |                             a.Ba(e) && | |||
|  |                             function(a) { | |||
|  |                               c()(a) | |||
|  |                             }, | |||
|  |                           i: b | |||
|  |                         }) | |||
|  |                       : e | |||
|  |                   }) | |||
|  |                 g.hasOwnProperty('$raw') || (g.$raw = f) | |||
|  |                 return g | |||
|  |               } | |||
|  |               return { $raw: {} } | |||
|  |             } | |||
|  | 
 | |||
|  |             a.g.getComponentNameForNode = function(b) { | |||
|  |               var c = a.a.A(b) | |||
|  |               if ( | |||
|  |                 a.g.ub(c) && | |||
|  |                 (-1 != c.indexOf('-') || | |||
|  |                   '[object HTMLUnknownElement]' == '' + b || | |||
|  |                   (8 >= a.a.C && b.tagName === c)) | |||
|  |               ) | |||
|  |                 return c | |||
|  |             } | |||
|  |             a.g.Ob = function(c, e, f, g) { | |||
|  |               if (1 === e.nodeType) { | |||
|  |                 var k = a.g.getComponentNameForNode(e) | |||
|  |                 if (k) { | |||
|  |                   c = c || {} | |||
|  |                   if (c.component) | |||
|  |                     throw Error( | |||
|  |                       'Cannot use the "component" binding on a custom element matching a component' | |||
|  |                     ) | |||
|  |                   var l = { name: k, params: b(e, f) } | |||
|  |                   c.component = g | |||
|  |                     ? function() { | |||
|  |                         return l | |||
|  |                       } | |||
|  |                     : l | |||
|  |                 } | |||
|  |               } | |||
|  |               return c | |||
|  |             } | |||
|  |             var c = new a.Q() | |||
|  |             9 > a.a.C && | |||
|  |               ((a.g.register = (function(a) { | |||
|  |                 return function(b) { | |||
|  |                   u.createElement(b) | |||
|  |                   return a.apply(this, arguments) | |||
|  |                 } | |||
|  |               })(a.g.register)), | |||
|  |               (u.createDocumentFragment = (function(b) { | |||
|  |                 return function() { | |||
|  |                   var c = b(), | |||
|  |                     f = a.g.Bc, | |||
|  |                     g | |||
|  |                   for (g in f) f.hasOwnProperty(g) && c.createElement(g) | |||
|  |                   return c | |||
|  |                 } | |||
|  |               })(u.createDocumentFragment))) | |||
|  |           })() | |||
|  |           ;(function(b) { | |||
|  |             function c(b, c, d) { | |||
|  |               c = c.template | |||
|  |               if (!c) throw Error("Component '" + b + "' has no template") | |||
|  |               b = a.a.ua(c) | |||
|  |               a.f.da(d, b) | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(a, b, c, d) { | |||
|  |               var e = a.createViewModel | |||
|  |               return e ? e.call(a, d, { element: b, templateNodes: c }) : d | |||
|  |             } | |||
|  | 
 | |||
|  |             var e = 0 | |||
|  |             a.d.component = { | |||
|  |               init: function(f, g, k, l, m) { | |||
|  |                 function h() { | |||
|  |                   var a = r && r.dispose | |||
|  |                   'function' === typeof a && a.call(r) | |||
|  |                   q = r = null | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var r, | |||
|  |                   q, | |||
|  |                   p = a.a.V(a.f.childNodes(f)) | |||
|  |                 a.a.F.oa(f, h) | |||
|  |                 a.m( | |||
|  |                   function() { | |||
|  |                     var l = a.a.c(g()), | |||
|  |                       k, | |||
|  |                       t | |||
|  |                     'string' === typeof l | |||
|  |                       ? (k = l) | |||
|  |                       : ((k = a.a.c(l.name)), (t = a.a.c(l.params))) | |||
|  |                     if (!k) throw Error('No component name specified') | |||
|  |                     var n = (q = ++e) | |||
|  |                     a.g.get(k, function(e) { | |||
|  |                       if (q === n) { | |||
|  |                         h() | |||
|  |                         if (!e) throw Error("Unknown component '" + k + "'") | |||
|  |                         c(k, e, f) | |||
|  |                         var g = d(e, f, p, t) | |||
|  |                         e = m.createChildContext(g, b, function(a) { | |||
|  |                           a.$component = g | |||
|  |                           a.$componentTemplateNodes = p | |||
|  |                         }) | |||
|  |                         r = g | |||
|  |                         a.eb(e, f) | |||
|  |                       } | |||
|  |                     }) | |||
|  |                   }, | |||
|  |                   null, | |||
|  |                   { i: f } | |||
|  |                 ) | |||
|  |                 return { controlsDescendantBindings: !0 } | |||
|  |               } | |||
|  |             } | |||
|  |             a.f.Z.component = !0 | |||
|  |           })() | |||
|  |           var S = { class: 'className', for: 'htmlFor' } | |||
|  |           a.d.attr = { | |||
|  |             update: function(b, c) { | |||
|  |               var d = a.a.c(c()) || {} | |||
|  |               a.a.D(d, function(c, d) { | |||
|  |                 d = a.a.c(d) | |||
|  |                 var g = !1 === d || null === d || d === n | |||
|  |                 g && b.removeAttribute(c) | |||
|  |                 8 >= a.a.C && c in S | |||
|  |                   ? ((c = S[c]), g ? b.removeAttribute(c) : (b[c] = d)) | |||
|  |                   : g || b.setAttribute(c, d.toString()) | |||
|  |                 'name' === c && a.a.rc(b, g ? '' : d.toString()) | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           ;(function() { | |||
|  |             a.d.checked = { | |||
|  |               after: ['value', 'attr'], | |||
|  |               init: function(b, c, d) { | |||
|  |                 function e() { | |||
|  |                   var e = b.checked, | |||
|  |                     f = p ? g() : e | |||
|  |                   if (!a.va.Sa() && (!l || e)) { | |||
|  |                     var m = a.l.w(c) | |||
|  |                     if (h) { | |||
|  |                       var k = r ? m.t() : m | |||
|  |                       q !== f | |||
|  |                         ? (e && (a.a.pa(k, f, !0), a.a.pa(k, q, !1)), (q = f)) | |||
|  |                         : a.a.pa(k, f, e) | |||
|  |                       r && a.Ba(m) && m(k) | |||
|  |                     } else a.h.Ea(m, d, 'checked', f, !0) | |||
|  |                   } | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function f() { | |||
|  |                   var d = a.a.c(c()) | |||
|  |                   b.checked = h ? 0 <= a.a.o(d, g()) : k ? d : g() === d | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var g = a.nc(function() { | |||
|  |                     return d.has('checkedValue') | |||
|  |                       ? a.a.c(d.get('checkedValue')) | |||
|  |                       : d.has('value') | |||
|  |                       ? a.a.c(d.get('value')) | |||
|  |                       : b.value | |||
|  |                   }), | |||
|  |                   k = 'checkbox' == b.type, | |||
|  |                   l = 'radio' == b.type | |||
|  |                 if (k || l) { | |||
|  |                   var m = c(), | |||
|  |                     h = k && a.a.c(m) instanceof Array, | |||
|  |                     r = !(h && m.push && m.splice), | |||
|  |                     q = h ? g() : n, | |||
|  |                     p = l || h | |||
|  |                   l && | |||
|  |                     !b.name && | |||
|  |                     a.d.uniqueName.init(b, function() { | |||
|  |                       return !0 | |||
|  |                     }) | |||
|  |                   a.m(e, null, { i: b }) | |||
|  |                   a.a.p(b, 'click', e) | |||
|  |                   a.m(f, null, { i: b }) | |||
|  |                   m = n | |||
|  |                 } | |||
|  |               } | |||
|  |             } | |||
|  |             a.h.ea.checked = !0 | |||
|  |             a.d.checkedValue = { | |||
|  |               update: function(b, c) { | |||
|  |                 b.value = a.a.c(c()) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.d.css = { | |||
|  |             update: function(b, c) { | |||
|  |               var d = a.a.c(c()) | |||
|  |               null !== d && 'object' == typeof d | |||
|  |                 ? a.a.D(d, function(c, d) { | |||
|  |                     d = a.a.c(d) | |||
|  |                     a.a.bb(b, c, d) | |||
|  |                   }) | |||
|  |                 : ((d = a.a.$a(String(d || ''))), | |||
|  |                   a.a.bb(b, b.__ko__cssValue, !1), | |||
|  |                   (b.__ko__cssValue = d), | |||
|  |                   a.a.bb(b, d, !0)) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.enable = { | |||
|  |             update: function(b, c) { | |||
|  |               var d = a.a.c(c()) | |||
|  |               d && b.disabled | |||
|  |                 ? b.removeAttribute('disabled') | |||
|  |                 : d || b.disabled || (b.disabled = !0) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.disable = { | |||
|  |             update: function(b, c) { | |||
|  |               a.d.enable.update(b, function() { | |||
|  |                 return !a.a.c(c()) | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.event = { | |||
|  |             init: function(b, c, d, e, f) { | |||
|  |               var g = c() || {} | |||
|  |               a.a.D(g, function(g) { | |||
|  |                 'string' == typeof g && | |||
|  |                   a.a.p(b, g, function(b) { | |||
|  |                     var m, | |||
|  |                       h = c()[g] | |||
|  |                     if (h) { | |||
|  |                       try { | |||
|  |                         var r = a.a.V(arguments) | |||
|  |                         e = f.$data | |||
|  |                         r.unshift(e) | |||
|  |                         m = h.apply(e, r) | |||
|  |                       } finally { | |||
|  |                         !0 !== m && | |||
|  |                           (b.preventDefault | |||
|  |                             ? b.preventDefault() | |||
|  |                             : (b.returnValue = !1)) | |||
|  |                       } | |||
|  |                       !1 === d.get(g + 'Bubble') && | |||
|  |                         ((b.cancelBubble = !0), | |||
|  |                         b.stopPropagation && b.stopPropagation()) | |||
|  |                     } | |||
|  |                   }) | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.foreach = { | |||
|  |             ic: function(b) { | |||
|  |               return function() { | |||
|  |                 var c = b(), | |||
|  |                   d = a.a.zb(c) | |||
|  |                 if (!d || 'number' == typeof d.length) | |||
|  |                   return { foreach: c, templateEngine: a.W.sb } | |||
|  |                 a.a.c(c) | |||
|  |                 return { | |||
|  |                   foreach: d.data, | |||
|  |                   as: d.as, | |||
|  |                   includeDestroyed: d.includeDestroyed, | |||
|  |                   afterAdd: d.afterAdd, | |||
|  |                   beforeRemove: d.beforeRemove, | |||
|  |                   afterRender: d.afterRender, | |||
|  |                   beforeMove: d.beforeMove, | |||
|  |                   afterMove: d.afterMove, | |||
|  |                   templateEngine: a.W.sb | |||
|  |                 } | |||
|  |               } | |||
|  |             }, | |||
|  |             init: function(b, c) { | |||
|  |               return a.d.template.init(b, a.d.foreach.ic(c)) | |||
|  |             }, | |||
|  |             update: function(b, c, d, e, f) { | |||
|  |               return a.d.template.update(b, a.d.foreach.ic(c), d, e, f) | |||
|  |             } | |||
|  |           } | |||
|  |           a.h.ta.foreach = !1 | |||
|  |           a.f.Z.foreach = !0 | |||
|  |           a.d.hasfocus = { | |||
|  |             init: function(b, c, d) { | |||
|  |               function e(e) { | |||
|  |                 b.__ko_hasfocusUpdating = !0 | |||
|  |                 var f = b.ownerDocument | |||
|  |                 if ('activeElement' in f) { | |||
|  |                   var g | |||
|  |                   try { | |||
|  |                     g = f.activeElement | |||
|  |                   } catch (h) { | |||
|  |                     g = f.body | |||
|  |                   } | |||
|  |                   e = g === b | |||
|  |                 } | |||
|  |                 f = c() | |||
|  |                 a.h.Ea(f, d, 'hasfocus', e, !0) | |||
|  |                 b.__ko_hasfocusLastValue = e | |||
|  |                 b.__ko_hasfocusUpdating = !1 | |||
|  |               } | |||
|  | 
 | |||
|  |               var f = e.bind(null, !0), | |||
|  |                 g = e.bind(null, !1) | |||
|  |               a.a.p(b, 'focus', f) | |||
|  |               a.a.p(b, 'focusin', f) | |||
|  |               a.a.p(b, 'blur', g) | |||
|  |               a.a.p(b, 'focusout', g) | |||
|  |             }, | |||
|  |             update: function(b, c) { | |||
|  |               var d = !!a.a.c(c()) | |||
|  |               b.__ko_hasfocusUpdating || | |||
|  |                 b.__ko_hasfocusLastValue === d || | |||
|  |                 (d ? b.focus() : b.blur(), | |||
|  |                 !d && b.__ko_hasfocusLastValue && b.ownerDocument.body.focus(), | |||
|  |                 a.l.w(a.a.Da, null, [b, d ? 'focusin' : 'focusout'])) | |||
|  |             } | |||
|  |           } | |||
|  |           a.h.ea.hasfocus = !0 | |||
|  |           a.d.hasFocus = a.d.hasfocus | |||
|  |           a.h.ea.hasFocus = !0 | |||
|  |           a.d.html = { | |||
|  |             init: function() { | |||
|  |               return { controlsDescendantBindings: !0 } | |||
|  |             }, | |||
|  |             update: function(b, c) { | |||
|  |               a.a.Cb(b, c()) | |||
|  |             } | |||
|  |           } | |||
|  |           K('if') | |||
|  |           K('ifnot', !1, !0) | |||
|  |           K('with', !0, !1, function(a, c) { | |||
|  |             return a.createChildContext(c) | |||
|  |           }) | |||
|  |           var L = {} | |||
|  |           a.d.options = { | |||
|  |             init: function(b) { | |||
|  |               if ('select' !== a.a.A(b)) | |||
|  |                 throw Error('options binding applies only to SELECT elements') | |||
|  |               for (; 0 < b.length; ) b.remove(0) | |||
|  |               return { controlsDescendantBindings: !0 } | |||
|  |             }, | |||
|  |             update: function(b, c, d) { | |||
|  |               function e() { | |||
|  |                 return a.a.Ka(b.options, function(a) { | |||
|  |                   return a.selected | |||
|  |                 }) | |||
|  |               } | |||
|  | 
 | |||
|  |               function f(a, b, c) { | |||
|  |                 var d = typeof b | |||
|  |                 return 'function' == d ? b(a) : 'string' == d ? a[b] : c | |||
|  |               } | |||
|  | 
 | |||
|  |               function g(c, e) { | |||
|  |                 if (A && h) a.j.ha(b, a.a.c(d.get('value')), !0) | |||
|  |                 else if (p.length) { | |||
|  |                   var f = 0 <= a.a.o(p, a.j.u(e[0])) | |||
|  |                   a.a.sc(e[0], f) | |||
|  |                   A && !f && a.l.w(a.a.Da, null, [b, 'change']) | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               var k = b.multiple, | |||
|  |                 l = 0 != b.length && k ? b.scrollTop : null, | |||
|  |                 m = a.a.c(c()), | |||
|  |                 h = d.get('valueAllowUnset') && d.has('value'), | |||
|  |                 r = d.get('optionsIncludeDestroyed') | |||
|  |               c = {} | |||
|  |               var q, | |||
|  |                 p = [] | |||
|  |               h || | |||
|  |                 (k | |||
|  |                   ? (p = a.a.fb(e(), a.j.u)) | |||
|  |                   : 0 <= b.selectedIndex && | |||
|  |                     p.push(a.j.u(b.options[b.selectedIndex]))) | |||
|  |               m && | |||
|  |                 ('undefined' == typeof m.length && (m = [m]), | |||
|  |                 (q = a.a.Ka(m, function(b) { | |||
|  |                   return r || b === n || null === b || !a.a.c(b._destroy) | |||
|  |                 })), | |||
|  |                 d.has('optionsCaption') && | |||
|  |                   ((m = a.a.c(d.get('optionsCaption'))), | |||
|  |                   null !== m && m !== n && q.unshift(L))) | |||
|  |               var A = !1 | |||
|  |               c.beforeRemove = function(a) { | |||
|  |                 b.removeChild(a) | |||
|  |               } | |||
|  |               m = g | |||
|  |               d.has('optionsAfterRender') && | |||
|  |                 'function' == typeof d.get('optionsAfterRender') && | |||
|  |                 (m = function(b, c) { | |||
|  |                   g(0, c) | |||
|  |                   a.l.w(d.get('optionsAfterRender'), null, [ | |||
|  |                     c[0], | |||
|  |                     b !== L ? b : n | |||
|  |                   ]) | |||
|  |                 }) | |||
|  |               a.a.Bb( | |||
|  |                 b, | |||
|  |                 q, | |||
|  |                 function(c, e, g) { | |||
|  |                   g.length && | |||
|  |                     ((p = !h && g[0].selected ? [a.j.u(g[0])] : []), (A = !0)) | |||
|  |                   e = b.ownerDocument.createElement('option') | |||
|  |                   c === L | |||
|  |                     ? (a.a.Za(e, d.get('optionsCaption')), a.j.ha(e, n)) | |||
|  |                     : ((g = f(c, d.get('optionsValue'), c)), | |||
|  |                       a.j.ha(e, a.a.c(g)), | |||
|  |                       (c = f(c, d.get('optionsText'), g)), | |||
|  |                       a.a.Za(e, c)) | |||
|  |                   return [e] | |||
|  |                 }, | |||
|  |                 c, | |||
|  |                 m | |||
|  |               ) | |||
|  |               a.l.w(function() { | |||
|  |                 h | |||
|  |                   ? a.j.ha(b, a.a.c(d.get('value')), !0) | |||
|  |                   : (k | |||
|  |                       ? p.length && e().length < p.length | |||
|  |                       : p.length && 0 <= b.selectedIndex | |||
|  |                       ? a.j.u(b.options[b.selectedIndex]) !== p[0] | |||
|  |                       : p.length || 0 <= b.selectedIndex) && a.a.Da(b, 'change') | |||
|  |               }) | |||
|  |               a.a.Nc(b) | |||
|  |               l && 20 < Math.abs(l - b.scrollTop) && (b.scrollTop = l) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.options.xb = a.a.e.I() | |||
|  |           a.d.selectedOptions = { | |||
|  |             after: ['options', 'foreach'], | |||
|  |             init: function(b, c, d) { | |||
|  |               a.a.p(b, 'change', function() { | |||
|  |                 var e = c(), | |||
|  |                   f = [] | |||
|  |                 a.a.q(b.getElementsByTagName('option'), function(b) { | |||
|  |                   b.selected && f.push(a.j.u(b)) | |||
|  |                 }) | |||
|  |                 a.h.Ea(e, d, 'selectedOptions', f) | |||
|  |               }) | |||
|  |             }, | |||
|  |             update: function(b, c) { | |||
|  |               if ('select' != a.a.A(b)) | |||
|  |                 throw Error('values binding applies only to SELECT elements') | |||
|  |               var d = a.a.c(c()), | |||
|  |                 e = b.scrollTop | |||
|  |               d && | |||
|  |                 'number' == typeof d.length && | |||
|  |                 a.a.q(b.getElementsByTagName('option'), function(b) { | |||
|  |                   var c = 0 <= a.a.o(d, a.j.u(b)) | |||
|  |                   b.selected != c && a.a.sc(b, c) | |||
|  |                 }) | |||
|  |               b.scrollTop = e | |||
|  |             } | |||
|  |           } | |||
|  |           a.h.ea.selectedOptions = !0 | |||
|  |           a.d.style = { | |||
|  |             update: function(b, c) { | |||
|  |               var d = a.a.c(c() || {}) | |||
|  |               a.a.D(d, function(c, d) { | |||
|  |                 d = a.a.c(d) | |||
|  |                 if (null === d || d === n || !1 === d) d = '' | |||
|  |                 b.style[c] = d | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.submit = { | |||
|  |             init: function(b, c, d, e, f) { | |||
|  |               if ('function' != typeof c()) | |||
|  |                 throw Error('The value for a submit binding must be a function') | |||
|  |               a.a.p(b, 'submit', function(a) { | |||
|  |                 var d, | |||
|  |                   e = c() | |||
|  |                 try { | |||
|  |                   d = e.call(f.$data, b) | |||
|  |                 } finally { | |||
|  |                   !0 !== d && | |||
|  |                     (a.preventDefault | |||
|  |                       ? a.preventDefault() | |||
|  |                       : (a.returnValue = !1)) | |||
|  |                 } | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.text = { | |||
|  |             init: function() { | |||
|  |               return { controlsDescendantBindings: !0 } | |||
|  |             }, | |||
|  |             update: function(b, c) { | |||
|  |               a.a.Za(b, c()) | |||
|  |             } | |||
|  |           } | |||
|  |           a.f.Z.text = !0 | |||
|  |           ;(function() { | |||
|  |             if (x && x.navigator) | |||
|  |               var b = function(a) { | |||
|  |                   if (a) return parseFloat(a[1]) | |||
|  |                 }, | |||
|  |                 c = x.opera && x.opera.version && parseInt(x.opera.version()), | |||
|  |                 d = x.navigator.userAgent, | |||
|  |                 e = b(d.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)), | |||
|  |                 f = b(d.match(/Firefox\/([^ ]*)/)) | |||
|  |             if (10 > a.a.C) | |||
|  |               var g = a.a.e.I(), | |||
|  |                 k = a.a.e.I(), | |||
|  |                 l = function(b) { | |||
|  |                   var c = this.activeElement | |||
|  |                   ;(c = c && a.a.e.get(c, k)) && c(b) | |||
|  |                 }, | |||
|  |                 m = function(b, c) { | |||
|  |                   var d = b.ownerDocument | |||
|  |                   a.a.e.get(d, g) || | |||
|  |                     (a.a.e.set(d, g, !0), a.a.p(d, 'selectionchange', l)) | |||
|  |                   a.a.e.set(b, k, c) | |||
|  |                 } | |||
|  |             a.d.textInput = { | |||
|  |               init: function(b, d, g) { | |||
|  |                 function l(c, d) { | |||
|  |                   a.a.p(b, c, d) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function k() { | |||
|  |                   var c = a.a.c(d()) | |||
|  |                   if (null === c || c === n) c = '' | |||
|  |                   v !== n && c === v | |||
|  |                     ? a.a.setTimeout(k, 4) | |||
|  |                     : b.value !== c && ((u = c), (b.value = c)) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function y() { | |||
|  |                   s || ((v = b.value), (s = a.a.setTimeout(t, 4))) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function t() { | |||
|  |                   clearTimeout(s) | |||
|  |                   v = s = n | |||
|  |                   var c = b.value | |||
|  |                   u !== c && ((u = c), a.h.Ea(d(), g, 'textInput', c)) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var u = b.value, | |||
|  |                   s, | |||
|  |                   v, | |||
|  |                   x = 9 == a.a.C ? y : t | |||
|  |                 10 > a.a.C | |||
|  |                   ? (l('propertychange', function(a) { | |||
|  |                       'value' === a.propertyName && x(a) | |||
|  |                     }), | |||
|  |                     8 == a.a.C && (l('keyup', t), l('keydown', t)), | |||
|  |                     8 <= a.a.C && (m(b, x), l('dragend', y))) | |||
|  |                   : (l('input', t), | |||
|  |                     5 > e && 'textarea' === a.a.A(b) | |||
|  |                       ? (l('keydown', y), l('paste', y), l('cut', y)) | |||
|  |                       : 11 > c | |||
|  |                       ? l('keydown', y) | |||
|  |                       : 4 > f && | |||
|  |                         (l('DOMAutoComplete', t), | |||
|  |                         l('dragdrop', t), | |||
|  |                         l('drop', t))) | |||
|  |                 l('change', t) | |||
|  |                 a.m(k, null, { i: b }) | |||
|  |               } | |||
|  |             } | |||
|  |             a.h.ea.textInput = !0 | |||
|  |             a.d.textinput = { | |||
|  |               preprocess: function(a, b, c) { | |||
|  |                 c('textInput', a) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.d.uniqueName = { | |||
|  |             init: function(b, c) { | |||
|  |               if (c()) { | |||
|  |                 var d = 'ko_unique_' + ++a.d.uniqueName.Ic | |||
|  |                 a.a.rc(b, d) | |||
|  |               } | |||
|  |             } | |||
|  |           } | |||
|  |           a.d.uniqueName.Ic = 0 | |||
|  |           a.d.value = { | |||
|  |             after: ['options', 'foreach'], | |||
|  |             init: function(b, c, d) { | |||
|  |               if ( | |||
|  |                 'input' != b.tagName.toLowerCase() || | |||
|  |                 ('checkbox' != b.type && 'radio' != b.type) | |||
|  |               ) { | |||
|  |                 var e = ['change'], | |||
|  |                   f = d.get('valueUpdate'), | |||
|  |                   g = !1, | |||
|  |                   k = null | |||
|  |                 f && | |||
|  |                   ('string' == typeof f && (f = [f]), | |||
|  |                   a.a.ra(e, f), | |||
|  |                   (e = a.a.Tb(e))) | |||
|  |                 var l = function() { | |||
|  |                   k = null | |||
|  |                   g = !1 | |||
|  |                   var e = c(), | |||
|  |                     f = a.j.u(b) | |||
|  |                   a.h.Ea(e, d, 'value', f) | |||
|  |                 } | |||
|  |                 !a.a.C || | |||
|  |                   'input' != b.tagName.toLowerCase() || | |||
|  |                   'text' != b.type || | |||
|  |                   'off' == b.autocomplete || | |||
|  |                   (b.form && 'off' == b.form.autocomplete) || | |||
|  |                   -1 != a.a.o(e, 'propertychange') || | |||
|  |                   (a.a.p(b, 'propertychange', function() { | |||
|  |                     g = !0 | |||
|  |                   }), | |||
|  |                   a.a.p(b, 'focus', function() { | |||
|  |                     g = !1 | |||
|  |                   }), | |||
|  |                   a.a.p(b, 'blur', function() { | |||
|  |                     g && l() | |||
|  |                   })) | |||
|  |                 a.a.q(e, function(c) { | |||
|  |                   var d = l | |||
|  |                   a.a.nd(c, 'after') && | |||
|  |                     ((d = function() { | |||
|  |                       k = a.j.u(b) | |||
|  |                       a.a.setTimeout(l, 0) | |||
|  |                     }), | |||
|  |                     (c = c.substring(5))) | |||
|  |                   a.a.p(b, c, d) | |||
|  |                 }) | |||
|  |                 var m = function() { | |||
|  |                   var e = a.a.c(c()), | |||
|  |                     f = a.j.u(b) | |||
|  |                   if (null !== k && e === k) a.a.setTimeout(m, 0) | |||
|  |                   else if (e !== f) | |||
|  |                     if ('select' === a.a.A(b)) { | |||
|  |                       var g = d.get('valueAllowUnset'), | |||
|  |                         f = function() { | |||
|  |                           a.j.ha(b, e, g) | |||
|  |                         } | |||
|  |                       f() | |||
|  |                       g || e === a.j.u(b) | |||
|  |                         ? a.a.setTimeout(f, 0) | |||
|  |                         : a.l.w(a.a.Da, null, [b, 'change']) | |||
|  |                     } else a.j.ha(b, e) | |||
|  |                 } | |||
|  |                 a.m(m, null, { i: b }) | |||
|  |               } else a.Ja(b, { checkedValue: c }) | |||
|  |             }, | |||
|  |             update: function() {} | |||
|  |           } | |||
|  |           a.h.ea.value = !0 | |||
|  |           a.d.visible = { | |||
|  |             update: function(b, c) { | |||
|  |               var d = a.a.c(c()), | |||
|  |                 e = 'none' != b.style.display | |||
|  |               d && !e | |||
|  |                 ? (b.style.display = '') | |||
|  |                 : !d && e && (b.style.display = 'none') | |||
|  |             } | |||
|  |           } | |||
|  |           ;(function(b) { | |||
|  |             a.d[b] = { | |||
|  |               init: function(c, d, e, f, g) { | |||
|  |                 return a.d.event.init.call( | |||
|  |                   this, | |||
|  |                   c, | |||
|  |                   function() { | |||
|  |                     var a = {} | |||
|  |                     a[b] = d() | |||
|  |                     return a | |||
|  |                   }, | |||
|  |                   e, | |||
|  |                   f, | |||
|  |                   g | |||
|  |                 ) | |||
|  |               } | |||
|  |             } | |||
|  |           })('click') | |||
|  |           a.O = function() {} | |||
|  |           a.O.prototype.renderTemplateSource = function() { | |||
|  |             throw Error('Override renderTemplateSource') | |||
|  |           } | |||
|  |           a.O.prototype.createJavaScriptEvaluatorBlock = function() { | |||
|  |             throw Error('Override createJavaScriptEvaluatorBlock') | |||
|  |           } | |||
|  |           a.O.prototype.makeTemplateSource = function(b, c) { | |||
|  |             if ('string' == typeof b) { | |||
|  |               c = c || u | |||
|  |               var d = c.getElementById(b) | |||
|  |               if (!d) throw Error('Cannot find template with ID ' + b) | |||
|  |               return new a.v.n(d) | |||
|  |             } | |||
|  |             if (1 == b.nodeType || 8 == b.nodeType) return new a.v.qa(b) | |||
|  |             throw Error('Unknown template type: ' + b) | |||
|  |           } | |||
|  |           a.O.prototype.renderTemplate = function(a, c, d, e) { | |||
|  |             a = this.makeTemplateSource(a, e) | |||
|  |             return this.renderTemplateSource(a, c, d, e) | |||
|  |           } | |||
|  |           a.O.prototype.isTemplateRewritten = function(a, c) { | |||
|  |             return !1 === this.allowTemplateRewriting | |||
|  |               ? !0 | |||
|  |               : this.makeTemplateSource(a, c).data('isRewritten') | |||
|  |           } | |||
|  |           a.O.prototype.rewriteTemplate = function(a, c, d) { | |||
|  |             a = this.makeTemplateSource(a, d) | |||
|  |             c = c(a.text()) | |||
|  |             a.text(c) | |||
|  |             a.data('isRewritten', !0) | |||
|  |           } | |||
|  |           a.b('templateEngine', a.O) | |||
|  |           a.Gb = (function() { | |||
|  |             function b(b, c, d, k) { | |||
|  |               b = a.h.yb(b) | |||
|  |               for (var l = a.h.ta, m = 0; m < b.length; m++) { | |||
|  |                 var h = b[m].key | |||
|  |                 if (l.hasOwnProperty(h)) { | |||
|  |                   var r = l[h] | |||
|  |                   if ('function' === typeof r) { | |||
|  |                     if ((h = r(b[m].value))) throw Error(h) | |||
|  |                   } else if (!r) | |||
|  |                     throw Error( | |||
|  |                       "This template engine does not support the '" + | |||
|  |                         h + | |||
|  |                         "' binding within its templates" | |||
|  |                     ) | |||
|  |                 } | |||
|  |               } | |||
|  |               d = | |||
|  |                 'ko.__tr_ambtns(function($context,$element){return(function(){return{ ' + | |||
|  |                 a.h.Ua(b, { valueAccessors: !0 }) + | |||
|  |                 " } })()},'" + | |||
|  |                 d.toLowerCase() + | |||
|  |                 "')" | |||
|  |               return k.createJavaScriptEvaluatorBlock(d) + c | |||
|  |             } | |||
|  | 
 | |||
|  |             var c = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi, | |||
|  |               d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g | |||
|  |             return { | |||
|  |               Oc: function(b, c, d) { | |||
|  |                 c.isTemplateRewritten(b, d) || | |||
|  |                   c.rewriteTemplate( | |||
|  |                     b, | |||
|  |                     function(b) { | |||
|  |                       return a.Gb.dd(b, c) | |||
|  |                     }, | |||
|  |                     d | |||
|  |                   ) | |||
|  |               }, | |||
|  |               dd: function(a, f) { | |||
|  |                 return a | |||
|  |                   .replace(c, function(a, c, d, e, h) { | |||
|  |                     return b(h, c, d, f) | |||
|  |                   }) | |||
|  |                   .replace(d, function(a, c) { | |||
|  |                     return b(c, '<!-- ko -->', '#comment', f) | |||
|  |                   }) | |||
|  |               }, | |||
|  |               Ec: function(b, c) { | |||
|  |                 return a.M.wb(function(d, k) { | |||
|  |                   var l = d.nextSibling | |||
|  |                   l && l.nodeName.toLowerCase() === c && a.Ja(l, b, k) | |||
|  |                 }) | |||
|  |               } | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('__tr_ambtns', a.Gb.Ec) | |||
|  |           ;(function() { | |||
|  |             a.v = {} | |||
|  |             a.v.n = function(b) { | |||
|  |               if ((this.n = b)) { | |||
|  |                 var c = a.a.A(b) | |||
|  |                 this.ab = | |||
|  |                   'script' === c | |||
|  |                     ? 1 | |||
|  |                     : 'textarea' === c | |||
|  |                     ? 2 | |||
|  |                     : 'template' == c && b.content && 11 === b.content.nodeType | |||
|  |                     ? 3 | |||
|  |                     : 4 | |||
|  |               } | |||
|  |             } | |||
|  |             a.v.n.prototype.text = function() { | |||
|  |               var b = | |||
|  |                 1 === this.ab ? 'text' : 2 === this.ab ? 'value' : 'innerHTML' | |||
|  |               if (0 == arguments.length) return this.n[b] | |||
|  |               var c = arguments[0] | |||
|  |               'innerHTML' === b ? a.a.Cb(this.n, c) : (this.n[b] = c) | |||
|  |             } | |||
|  |             var b = a.a.e.I() + '_' | |||
|  |             a.v.n.prototype.data = function(c) { | |||
|  |               if (1 === arguments.length) return a.a.e.get(this.n, b + c) | |||
|  |               a.a.e.set(this.n, b + c, arguments[1]) | |||
|  |             } | |||
|  |             var c = a.a.e.I() | |||
|  |             a.v.n.prototype.nodes = function() { | |||
|  |               var b = this.n | |||
|  |               if (0 == arguments.length) | |||
|  |                 return ( | |||
|  |                   (a.a.e.get(b, c) || {}).jb || | |||
|  |                   (3 === this.ab ? b.content : 4 === this.ab ? b : n) | |||
|  |                 ) | |||
|  |               a.a.e.set(b, c, { jb: arguments[0] }) | |||
|  |             } | |||
|  |             a.v.qa = function(a) { | |||
|  |               this.n = a | |||
|  |             } | |||
|  |             a.v.qa.prototype = new a.v.n() | |||
|  |             a.v.qa.prototype.text = function() { | |||
|  |               if (0 == arguments.length) { | |||
|  |                 var b = a.a.e.get(this.n, c) || {} | |||
|  |                 b.Hb === n && b.jb && (b.Hb = b.jb.innerHTML) | |||
|  |                 return b.Hb | |||
|  |               } | |||
|  |               a.a.e.set(this.n, c, { Hb: arguments[0] }) | |||
|  |             } | |||
|  |             a.b('templateSources', a.v) | |||
|  |             a.b('templateSources.domElement', a.v.n) | |||
|  |             a.b('templateSources.anonymousTemplate', a.v.qa) | |||
|  |           })() | |||
|  |           ;(function() { | |||
|  |             function b(b, c, d) { | |||
|  |               var e | |||
|  |               for (c = a.f.nextSibling(c); b && (e = b) !== c; ) | |||
|  |                 (b = a.f.nextSibling(e)), d(e, b) | |||
|  |             } | |||
|  | 
 | |||
|  |             function c(c, d) { | |||
|  |               if (c.length) { | |||
|  |                 var e = c[0], | |||
|  |                   f = c[c.length - 1], | |||
|  |                   g = e.parentNode, | |||
|  |                   k = a.Q.instance, | |||
|  |                   n = k.preprocessNode | |||
|  |                 if (n) { | |||
|  |                   b(e, f, function(a, b) { | |||
|  |                     var c = a.previousSibling, | |||
|  |                       d = n.call(k, a) | |||
|  |                     d && | |||
|  |                       (a === e && (e = d[0] || b), | |||
|  |                       a === f && (f = d[d.length - 1] || c)) | |||
|  |                   }) | |||
|  |                   c.length = 0 | |||
|  |                   if (!e) return | |||
|  |                   e === f ? c.push(e) : (c.push(e, f), a.a.za(c, g)) | |||
|  |                 } | |||
|  |                 b(e, f, function(b) { | |||
|  |                   ;(1 !== b.nodeType && 8 !== b.nodeType) || a.Rb(d, b) | |||
|  |                 }) | |||
|  |                 b(e, f, function(b) { | |||
|  |                   ;(1 !== b.nodeType && 8 !== b.nodeType) || a.M.yc(b, [d]) | |||
|  |                 }) | |||
|  |                 a.a.za(c, g) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             function d(a) { | |||
|  |               return a.nodeType ? a : 0 < a.length ? a[0] : null | |||
|  |             } | |||
|  | 
 | |||
|  |             function e(b, e, f, k, q) { | |||
|  |               q = q || {} | |||
|  |               var p = ((b && d(b)) || f || {}).ownerDocument, | |||
|  |                 n = q.templateEngine || g | |||
|  |               a.Gb.Oc(f, n, p) | |||
|  |               f = n.renderTemplate(f, k, q, p) | |||
|  |               if ( | |||
|  |                 'number' != typeof f.length || | |||
|  |                 (0 < f.length && 'number' != typeof f[0].nodeType) | |||
|  |               ) | |||
|  |                 throw Error('Template engine must return an array of DOM nodes') | |||
|  |               p = !1 | |||
|  |               switch (e) { | |||
|  |                 case 'replaceChildren': | |||
|  |                   a.f.da(b, f) | |||
|  |                   p = !0 | |||
|  |                   break | |||
|  |                 case 'replaceNode': | |||
|  |                   a.a.qc(b, f) | |||
|  |                   p = !0 | |||
|  |                   break | |||
|  |                 case 'ignoreTargetNode': | |||
|  |                   break | |||
|  |                 default: | |||
|  |                   throw Error('Unknown renderMode: ' + e) | |||
|  |               } | |||
|  |               p && | |||
|  |                 (c(f, k), | |||
|  |                 q.afterRender && a.l.w(q.afterRender, null, [f, k.$data])) | |||
|  |               return f | |||
|  |             } | |||
|  | 
 | |||
|  |             function f(b, c, d) { | |||
|  |               return a.H(b) ? b() : 'function' === typeof b ? b(c, d) : b | |||
|  |             } | |||
|  | 
 | |||
|  |             var g | |||
|  |             a.Db = function(b) { | |||
|  |               if (b != n && !(b instanceof a.O)) | |||
|  |                 throw Error( | |||
|  |                   'templateEngine must inherit from ko.templateEngine' | |||
|  |                 ) | |||
|  |               g = b | |||
|  |             } | |||
|  |             a.Ab = function(b, c, h, k, q) { | |||
|  |               h = h || {} | |||
|  |               if ((h.templateEngine || g) == n) | |||
|  |                 throw Error( | |||
|  |                   'Set a template engine before calling renderTemplate' | |||
|  |                 ) | |||
|  |               q = q || 'replaceChildren' | |||
|  |               if (k) { | |||
|  |                 var p = d(k) | |||
|  |                 return a.B( | |||
|  |                   function() { | |||
|  |                     var g = c && c instanceof a.U ? c : new a.U(a.a.c(c)), | |||
|  |                       n = f(b, g.$data, g), | |||
|  |                       g = e(k, q, n, g, h) | |||
|  |                     'replaceNode' == q && ((k = g), (p = d(k))) | |||
|  |                   }, | |||
|  |                   null, | |||
|  |                   { | |||
|  |                     wa: function() { | |||
|  |                       return !p || !a.a.nb(p) | |||
|  |                     }, | |||
|  |                     i: p && 'replaceNode' == q ? p.parentNode : p | |||
|  |                   } | |||
|  |                 ) | |||
|  |               } | |||
|  |               return a.M.wb(function(d) { | |||
|  |                 a.Ab(b, c, h, d, 'replaceNode') | |||
|  |               }) | |||
|  |             } | |||
|  |             a.kd = function(b, d, g, k, q) { | |||
|  |               function p(a, b) { | |||
|  |                 c(b, s) | |||
|  |                 g.afterRender && g.afterRender(b, a) | |||
|  |                 s = null | |||
|  |               } | |||
|  | 
 | |||
|  |               function u(a, c) { | |||
|  |                 s = q.createChildContext(a, g.as, function(a) { | |||
|  |                   a.$index = c | |||
|  |                 }) | |||
|  |                 var d = f(b, a, s) | |||
|  |                 return e(null, 'ignoreTargetNode', d, s, g) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s | |||
|  |               return a.B( | |||
|  |                 function() { | |||
|  |                   var b = a.a.c(d) || [] | |||
|  |                   'undefined' == typeof b.length && (b = [b]) | |||
|  |                   b = a.a.Ka(b, function(b) { | |||
|  |                     return ( | |||
|  |                       g.includeDestroyed || | |||
|  |                       b === n || | |||
|  |                       null === b || | |||
|  |                       !a.a.c(b._destroy) | |||
|  |                     ) | |||
|  |                   }) | |||
|  |                   a.l.w(a.a.Bb, null, [k, b, u, g, p]) | |||
|  |                 }, | |||
|  |                 null, | |||
|  |                 { i: k } | |||
|  |               ) | |||
|  |             } | |||
|  |             var k = a.a.e.I() | |||
|  |             a.d.template = { | |||
|  |               init: function(b, c) { | |||
|  |                 var d = a.a.c(c()) | |||
|  |                 if ('string' == typeof d || d.name) a.f.xa(b) | |||
|  |                 else { | |||
|  |                   if ('nodes' in d) { | |||
|  |                     if (((d = d.nodes || []), a.H(d))) | |||
|  |                       throw Error( | |||
|  |                         'The "nodes" option must be a plain, non-observable array.' | |||
|  |                       ) | |||
|  |                   } else d = a.f.childNodes(b) | |||
|  |                   d = a.a.jc(d) | |||
|  |                   new a.v.qa(b).nodes(d) | |||
|  |                 } | |||
|  |                 return { controlsDescendantBindings: !0 } | |||
|  |               }, | |||
|  |               update: function(b, c, d, e, f) { | |||
|  |                 var g = c(), | |||
|  |                   s | |||
|  |                 c = a.a.c(g) | |||
|  |                 d = !0 | |||
|  |                 e = null | |||
|  |                 'string' == typeof c | |||
|  |                   ? (c = {}) | |||
|  |                   : ((g = c.name), | |||
|  |                     'if' in c && (d = a.a.c(c['if'])), | |||
|  |                     d && 'ifnot' in c && (d = !a.a.c(c.ifnot)), | |||
|  |                     (s = a.a.c(c.data))) | |||
|  |                 'foreach' in c | |||
|  |                   ? (e = a.kd(g || b, (d && c.foreach) || [], c, b, f)) | |||
|  |                   : d | |||
|  |                   ? ((f = 'data' in c ? f.createChildContext(s, c.as) : f), | |||
|  |                     (e = a.Ab(g || b, f, c, b))) | |||
|  |                   : a.f.xa(b) | |||
|  |                 f = e | |||
|  |                 ;(s = a.a.e.get(b, k)) && 'function' == typeof s.k && s.k() | |||
|  |                 a.a.e.set(b, k, f && f.ba() ? f : n) | |||
|  |               } | |||
|  |             } | |||
|  |             a.h.ta.template = function(b) { | |||
|  |               b = a.h.yb(b) | |||
|  |               return (1 == b.length && b[0].unknown) || a.h.ad(b, 'name') | |||
|  |                 ? null | |||
|  |                 : 'This template engine does not support anonymous templates nested within its templates' | |||
|  |             } | |||
|  |             a.f.Z.template = !0 | |||
|  |           })() | |||
|  |           a.b('setTemplateEngine', a.Db) | |||
|  |           a.b('renderTemplate', a.Ab) | |||
|  |           a.a.dc = function(a, c, d) { | |||
|  |             if (a.length && c.length) { | |||
|  |               var e, f, g, k, l | |||
|  |               for (e = f = 0; (!d || e < d) && (k = a[f]); ++f) { | |||
|  |                 for (g = 0; (l = c[g]); ++g) | |||
|  |                   if (k.value === l.value) { | |||
|  |                     k.moved = l.index | |||
|  |                     l.moved = k.index | |||
|  |                     c.splice(g, 1) | |||
|  |                     e = g = 0 | |||
|  |                     break | |||
|  |                   } | |||
|  |                 e += g | |||
|  |               } | |||
|  |             } | |||
|  |           } | |||
|  |           a.a.ib = (function() { | |||
|  |             function b(b, d, e, f, g) { | |||
|  |               var k = Math.min, | |||
|  |                 l = Math.max, | |||
|  |                 m = [], | |||
|  |                 h, | |||
|  |                 n = b.length, | |||
|  |                 q, | |||
|  |                 p = d.length, | |||
|  |                 s = p - n || 1, | |||
|  |                 u = n + p + 1, | |||
|  |                 t, | |||
|  |                 v, | |||
|  |                 x | |||
|  |               for (h = 0; h <= n; h++) | |||
|  |                 for ( | |||
|  |                   v = t, m.push((t = [])), x = k(p, h + s), q = l(0, h - 1); | |||
|  |                   q <= x; | |||
|  |                   q++ | |||
|  |                 ) | |||
|  |                   t[q] = q | |||
|  |                     ? h | |||
|  |                       ? b[h - 1] === d[q - 1] | |||
|  |                         ? v[q - 1] | |||
|  |                         : k(v[q] || u, t[q - 1] || u) + 1 | |||
|  |                       : q + 1 | |||
|  |                     : h + 1 | |||
|  |               k = [] | |||
|  |               l = [] | |||
|  |               s = [] | |||
|  |               h = n | |||
|  |               for (q = p; h || q; ) | |||
|  |                 (p = m[h][q] - 1), | |||
|  |                   q && p === m[h][q - 1] | |||
|  |                     ? l.push( | |||
|  |                         (k[k.length] = { | |||
|  |                           status: e, | |||
|  |                           value: d[--q], | |||
|  |                           index: q | |||
|  |                         }) | |||
|  |                       ) | |||
|  |                     : h && p === m[h - 1][q] | |||
|  |                     ? s.push( | |||
|  |                         (k[k.length] = { | |||
|  |                           status: f, | |||
|  |                           value: b[--h], | |||
|  |                           index: h | |||
|  |                         }) | |||
|  |                       ) | |||
|  |                     : (--q, | |||
|  |                       --h, | |||
|  |                       g.sparse || k.push({ status: 'retained', value: d[q] })) | |||
|  |               a.a.dc(s, l, !g.dontLimitMoves && 10 * n) | |||
|  |               return k.reverse() | |||
|  |             } | |||
|  | 
 | |||
|  |             return function(a, d, e) { | |||
|  |               e = 'boolean' === typeof e ? { dontLimitMoves: e } : e || {} | |||
|  |               a = a || [] | |||
|  |               d = d || [] | |||
|  |               return a.length < d.length | |||
|  |                 ? b(a, d, 'added', 'deleted', e) | |||
|  |                 : b(d, a, 'deleted', 'added', e) | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('utils.compareArrays', a.a.ib) | |||
|  |           ;(function() { | |||
|  |             function b(b, c, d, k, l) { | |||
|  |               var m = [], | |||
|  |                 h = a.B( | |||
|  |                   function() { | |||
|  |                     var h = c(d, l, a.a.za(m, b)) || [] | |||
|  |                     0 < m.length && | |||
|  |                       (a.a.qc(m, h), k && a.l.w(k, null, [d, h, l])) | |||
|  |                     m.length = 0 | |||
|  |                     a.a.ra(m, h) | |||
|  |                   }, | |||
|  |                   null, | |||
|  |                   { | |||
|  |                     i: b, | |||
|  |                     wa: function() { | |||
|  |                       return !a.a.Qb(m) | |||
|  |                     } | |||
|  |                   } | |||
|  |                 ) | |||
|  |               return { ca: m, B: h.ba() ? h : n } | |||
|  |             } | |||
|  | 
 | |||
|  |             var c = a.a.e.I(), | |||
|  |               d = a.a.e.I() | |||
|  |             a.a.Bb = function(e, f, g, k, l) { | |||
|  |               function m(b, c) { | |||
|  |                 w = q[c] | |||
|  |                 v !== c && (D[b] = w) | |||
|  |                 w.qb(v++) | |||
|  |                 a.a.za(w.ca, e) | |||
|  |                 u.push(w) | |||
|  |                 z.push(w) | |||
|  |               } | |||
|  | 
 | |||
|  |               function h(b, c) { | |||
|  |                 if (b) | |||
|  |                   for (var d = 0, e = c.length; d < e; d++) | |||
|  |                     c[d] && | |||
|  |                       a.a.q(c[d].ca, function(a) { | |||
|  |                         b(a, d, c[d].ja) | |||
|  |                       }) | |||
|  |               } | |||
|  | 
 | |||
|  |               f = f || [] | |||
|  |               k = k || {} | |||
|  |               var r = a.a.e.get(e, c) === n, | |||
|  |                 q = a.a.e.get(e, c) || [], | |||
|  |                 p = a.a.fb(q, function(a) { | |||
|  |                   return a.ja | |||
|  |                 }), | |||
|  |                 s = a.a.ib(p, f, k.dontLimitMoves), | |||
|  |                 u = [], | |||
|  |                 t = 0, | |||
|  |                 v = 0, | |||
|  |                 x = [], | |||
|  |                 z = [] | |||
|  |               f = [] | |||
|  |               for (var D = [], p = [], w, C = 0, B, E; (B = s[C]); C++) | |||
|  |                 switch (((E = B.moved), B.status)) { | |||
|  |                   case 'deleted': | |||
|  |                     E === n && | |||
|  |                       ((w = q[t]), | |||
|  |                       w.B && (w.B.k(), (w.B = n)), | |||
|  |                       a.a.za(w.ca, e).length && | |||
|  |                         (k.beforeRemove && | |||
|  |                           (u.push(w), | |||
|  |                           z.push(w), | |||
|  |                           w.ja === d ? (w = null) : (f[C] = w)), | |||
|  |                         w && x.push.apply(x, w.ca))) | |||
|  |                     t++ | |||
|  |                     break | |||
|  |                   case 'retained': | |||
|  |                     m(C, t++) | |||
|  |                     break | |||
|  |                   case 'added': | |||
|  |                     E !== n | |||
|  |                       ? m(C, E) | |||
|  |                       : ((w = { ja: B.value, qb: a.N(v++) }), | |||
|  |                         u.push(w), | |||
|  |                         z.push(w), | |||
|  |                         r || (p[C] = w)) | |||
|  |                 } | |||
|  |               a.a.e.set(e, c, u) | |||
|  |               h(k.beforeMove, D) | |||
|  |               a.a.q(x, k.beforeRemove ? a.$ : a.removeNode) | |||
|  |               for (var C = 0, r = a.f.firstChild(e), F; (w = z[C]); C++) { | |||
|  |                 w.ca || a.a.extend(w, b(e, g, w.ja, l, w.qb)) | |||
|  |                 for (t = 0; (s = w.ca[t]); r = s.nextSibling, F = s, t++) | |||
|  |                   s !== r && a.f.gc(e, s, F) | |||
|  |                 !w.Wc && l && (l(w.ja, w.ca, w.qb), (w.Wc = !0)) | |||
|  |               } | |||
|  |               h(k.beforeRemove, f) | |||
|  |               for (C = 0; C < f.length; ++C) f[C] && (f[C].ja = d) | |||
|  |               h(k.afterMove, D) | |||
|  |               h(k.afterAdd, p) | |||
|  |             } | |||
|  |           })() | |||
|  |           a.b('utils.setDomNodeChildrenFromArrayMapping', a.a.Bb) | |||
|  |           a.W = function() { | |||
|  |             this.allowTemplateRewriting = !1 | |||
|  |           } | |||
|  |           a.W.prototype = new a.O() | |||
|  |           a.W.prototype.renderTemplateSource = function(b, c, d, e) { | |||
|  |             if ((c = (9 > a.a.C ? 0 : b.nodes) ? b.nodes() : null)) | |||
|  |               return a.a.V(c.cloneNode(!0).childNodes) | |||
|  |             b = b.text() | |||
|  |             return a.a.ma(b, e) | |||
|  |           } | |||
|  |           a.W.sb = new a.W() | |||
|  |           a.Db(a.W.sb) | |||
|  |           a.b('nativeTemplateEngine', a.W) | |||
|  |           ;(function() { | |||
|  |             a.vb = function() { | |||
|  |               var a = (this.$c = (function() { | |||
|  |                 if (!v || !v.tmpl) return 0 | |||
|  |                 try { | |||
|  |                   if (0 <= v.tmpl.tag.tmpl.open.toString().indexOf('__')) | |||
|  |                     return 2 | |||
|  |                 } catch (a) {} | |||
|  |                 return 1 | |||
|  |               })()) | |||
|  |               this.renderTemplateSource = function(b, e, f, g) { | |||
|  |                 g = g || u | |||
|  |                 f = f || {} | |||
|  |                 if (2 > a) | |||
|  |                   throw Error( | |||
|  |                     'Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.' | |||
|  |                   ) | |||
|  |                 var k = b.data('precompiled') | |||
|  |                 k || | |||
|  |                   ((k = b.text() || ''), | |||
|  |                   (k = v.template( | |||
|  |                     null, | |||
|  |                     '{{ko_with $item.koBindingContext}}' + k + '{{/ko_with}}' | |||
|  |                   )), | |||
|  |                   b.data('precompiled', k)) | |||
|  |                 b = [e.$data] | |||
|  |                 e = v.extend({ koBindingContext: e }, f.templateOptions) | |||
|  |                 e = v.tmpl(k, b, e) | |||
|  |                 e.appendTo(g.createElement('div')) | |||
|  |                 v.fragments = {} | |||
|  |                 return e | |||
|  |               } | |||
|  |               this.createJavaScriptEvaluatorBlock = function(a) { | |||
|  |                 return '{{ko_code ((function() { return ' + a + ' })()) }}' | |||
|  |               } | |||
|  |               this.addTemplate = function(a, b) { | |||
|  |                 u.write( | |||
|  |                   "<script type='text/html' id='" + a + "'>" + b + '</script>' | |||
|  |                 ) | |||
|  |               } | |||
|  |               0 < a && | |||
|  |                 ((v.tmpl.tag.ko_code = { open: "__.push($1 || '');" }), | |||
|  |                 (v.tmpl.tag.ko_with = { | |||
|  |                   open: 'with($1) {', | |||
|  |                   close: '} ' | |||
|  |                 })) | |||
|  |             } | |||
|  |             a.vb.prototype = new a.O() | |||
|  |             var b = new a.vb() | |||
|  |             0 < b.$c && a.Db(b) | |||
|  |             a.b('jqueryTmplTemplateEngine', a.vb) | |||
|  |           })() | |||
|  |         }) | |||
|  |       })() | |||
|  |     })() | |||
|  |     !(function(a, b) { | |||
|  |       'use strict' | |||
|  |       function c(a, b) { | |||
|  |         if (!a || 'object' != typeof a) | |||
|  |           throw new Error( | |||
|  |             'When calling ko.track, you must pass an object as the first parameter.' | |||
|  |           ) | |||
|  |         var c | |||
|  |         return ( | |||
|  |           i(b) | |||
|  |             ? ((b.deep = b.deep || !1), | |||
|  |               (b.fields = b.fields || Object.getOwnPropertyNames(a)), | |||
|  |               (b.lazy = b.lazy || !1), | |||
|  |               h(a, b.fields, b)) | |||
|  |             : ((c = b || Object.getOwnPropertyNames(a)), h(a, c, {})), | |||
|  |           a | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function d(a) { | |||
|  |         return a.name | |||
|  |           ? a.name | |||
|  |           : (a | |||
|  |               .toString() | |||
|  |               .trim() | |||
|  |               .match(A) || [])[1] | |||
|  |       } | |||
|  | 
 | |||
|  |       function e(a) { | |||
|  |         return a && 'object' == typeof a && 'Object' === d(a.constructor) | |||
|  |       } | |||
|  | 
 | |||
|  |       function f(a, c, d) { | |||
|  |         var e = w.isObservable(a), | |||
|  |           f = !e && Array.isArray(a), | |||
|  |           g = e ? a : f ? w.observableArray(a) : w.observable(a) | |||
|  |         return ( | |||
|  |           (d[c] = function() { | |||
|  |             return g | |||
|  |           }), | |||
|  |           (f || (e && 'push' in g)) && m(w, g), | |||
|  |           { | |||
|  |             configurable: !0, | |||
|  |             enumerable: !0, | |||
|  |             get: g, | |||
|  |             set: w.isWriteableObservable(g) ? g : b | |||
|  |           } | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function g(a, b, c) { | |||
|  |         function d(a, b) { | |||
|  |           return e | |||
|  |             ? b | |||
|  |               ? e(a) | |||
|  |               : e | |||
|  |             : Array.isArray(a) | |||
|  |             ? ((e = w.observableArray(a)), m(w, e), e) | |||
|  |             : (e = w.observable(a)) | |||
|  |         } | |||
|  | 
 | |||
|  |         if (w.isObservable(a)) return f(a, b, c) | |||
|  |         var e | |||
|  |         return ( | |||
|  |           (c[b] = function() { | |||
|  |             return d(a) | |||
|  |           }), | |||
|  |           { | |||
|  |             configurable: !0, | |||
|  |             enumerable: !0, | |||
|  |             get: function() { | |||
|  |               return d(a)() | |||
|  |             }, | |||
|  |             set: function(a) { | |||
|  |               d(a, !0) | |||
|  |             } | |||
|  |           } | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function h(a, b, c) { | |||
|  |         if (b.length) { | |||
|  |           var d = j(a, !0), | |||
|  |             i = {} | |||
|  |           b.forEach(function(b) { | |||
|  |             if ( | |||
|  |               !(b in d) && | |||
|  |               Object.getOwnPropertyDescriptor(a, b).configurable !== !1 | |||
|  |             ) { | |||
|  |               var j = a[b] | |||
|  |               ;(i[b] = (c.lazy ? g : f)(j, b, d)), | |||
|  |                 c.deep && e(j) && h(j, Object.keys(j), c) | |||
|  |             } | |||
|  |           }), | |||
|  |             Object.defineProperties(a, i) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function i(a) { | |||
|  |         return !!a && 'object' == typeof a && a.constructor === Object | |||
|  |       } | |||
|  | 
 | |||
|  |       function j(a, b) { | |||
|  |         x || (x = z()) | |||
|  |         var c = x.get(a) | |||
|  |         return !c && b && ((c = {}), x.set(a, c)), c | |||
|  |       } | |||
|  | 
 | |||
|  |       function k(a, b) { | |||
|  |         if (x) | |||
|  |           if (1 === arguments.length) x['delete'](a) | |||
|  |           else { | |||
|  |             var c = j(a, !1) | |||
|  |             c && | |||
|  |               b.forEach(function(a) { | |||
|  |                 delete c[a] | |||
|  |               }) | |||
|  |           } | |||
|  |       } | |||
|  | 
 | |||
|  |       function l(a, b, d) { | |||
|  |         var e = this, | |||
|  |           f = { owner: a, deferEvaluation: !0 } | |||
|  |         if ('function' == typeof d) f.read = d | |||
|  |         else { | |||
|  |           if ('value' in d) | |||
|  |             throw new Error( | |||
|  |               'For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.' | |||
|  |             ) | |||
|  |           if ('function' != typeof d.get) | |||
|  |             throw new Error( | |||
|  |               'For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".' | |||
|  |             ) | |||
|  |           ;(f.read = d.get), (f.write = d.set) | |||
|  |         } | |||
|  |         return (a[b] = e.computed(f)), c.call(e, a, [b]), a | |||
|  |       } | |||
|  | 
 | |||
|  |       function m(a, b) { | |||
|  |         var c = null | |||
|  |         a.computed(function() { | |||
|  |           c && (c.dispose(), (c = null)) | |||
|  |           var d = b() | |||
|  |           d instanceof Array && (c = n(a, b, d)) | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       function n(a, b, c) { | |||
|  |         var d = o(a, c) | |||
|  |         return d.subscribe(b) | |||
|  |       } | |||
|  | 
 | |||
|  |       function o(a, b) { | |||
|  |         y || (y = z()) | |||
|  |         var c = y.get(b) | |||
|  |         if (!c) { | |||
|  |           ;(c = new a.subscribable()), y.set(b, c) | |||
|  |           var d = {} | |||
|  |           p(b, c, d), q(a, b, c, d) | |||
|  |         } | |||
|  |         return c | |||
|  |       } | |||
|  | 
 | |||
|  |       function p(a, b, c) { | |||
|  |         ;[ | |||
|  |           'pop', | |||
|  |           'push', | |||
|  |           'reverse', | |||
|  |           'shift', | |||
|  |           'sort', | |||
|  |           'splice', | |||
|  |           'unshift' | |||
|  |         ].forEach(function(d) { | |||
|  |           var e = a[d] | |||
|  |           a[d] = function() { | |||
|  |             var a = e.apply(this, arguments) | |||
|  |             return c.pause !== !0 && b.notifySubscribers(this), a | |||
|  |           } | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       function q(a, b, c, d) { | |||
|  |         ;['remove', 'removeAll', 'destroy', 'destroyAll', 'replace'].forEach( | |||
|  |           function(e) { | |||
|  |             Object.defineProperty(b, e, { | |||
|  |               enumerable: !1, | |||
|  |               value: function() { | |||
|  |                 var f | |||
|  |                 d.pause = !0 | |||
|  |                 try { | |||
|  |                   f = a.observableArray.fn[e].apply( | |||
|  |                     a.observableArray(b), | |||
|  |                     arguments | |||
|  |                   ) | |||
|  |                 } finally { | |||
|  |                   d.pause = !1 | |||
|  |                 } | |||
|  |                 return c.notifySubscribers(b), f | |||
|  |               } | |||
|  |             }) | |||
|  |           } | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function r(a, b) { | |||
|  |         if (!a || 'object' != typeof a) return null | |||
|  |         var c = j(a, !1) | |||
|  |         return c && b in c ? c[b]() : null | |||
|  |       } | |||
|  | 
 | |||
|  |       function s(a, b) { | |||
|  |         if (!a || 'object' != typeof a) return !1 | |||
|  |         var c = j(a, !1) | |||
|  |         return !!c && b in c | |||
|  |       } | |||
|  | 
 | |||
|  |       function t(a, b) { | |||
|  |         var c = r(a, b) | |||
|  |         c && c.valueHasMutated() | |||
|  |       } | |||
|  | 
 | |||
|  |       function u(a) { | |||
|  |         ;(a.track = c), | |||
|  |           (a.untrack = k), | |||
|  |           (a.getObservable = r), | |||
|  |           (a.valueHasMutated = t), | |||
|  |           (a.defineProperty = l), | |||
|  |           (a.es5 = { | |||
|  |             getAllObservablesForObject: j, | |||
|  |             notifyWhenPresentOrFutureArrayValuesMutate: m, | |||
|  |             isTracked: s | |||
|  |           }) | |||
|  |       } | |||
|  | 
 | |||
|  |       function v() { | |||
|  |         if ('object' == typeof exports && 'object' == typeof module) { | |||
|  |           w = require('knockout') | |||
|  |           var b = require('../lib/weakmap') | |||
|  |           u(w), | |||
|  |             (z = function() { | |||
|  |               return new b() | |||
|  |             }), | |||
|  |             (module.exports = w) | |||
|  |         } else | |||
|  |           'function' == typeof define && define.amd | |||
|  |             ? define('KnockoutES5', ['knockout'], function(b) { | |||
|  |                 return ( | |||
|  |                   (w = b), | |||
|  |                   u(b), | |||
|  |                   (z = function() { | |||
|  |                     return new a.WeakMap() | |||
|  |                   }), | |||
|  |                   b | |||
|  |                 ) | |||
|  |               }) | |||
|  |             : 'ko' in a && | |||
|  |               ((w = a.ko), | |||
|  |               u(a.ko), | |||
|  |               (z = function() { | |||
|  |                 return new a.WeakMap() | |||
|  |               })) | |||
|  |       } | |||
|  | 
 | |||
|  |       var w, | |||
|  |         x, | |||
|  |         y, | |||
|  |         z, | |||
|  |         A = /^function\s*([^\s(]+)/ | |||
|  |       v() | |||
|  |     })(this), | |||
|  |       void (function(a, b, c) { | |||
|  |         function d(a, b, c) { | |||
|  |           return ( | |||
|  |             'function' == typeof b && ((c = b), (b = e(c).replace(/_$/, ''))), | |||
|  |             j(a, b, { | |||
|  |               configurable: !0, | |||
|  |               writable: !0, | |||
|  |               value: c | |||
|  |             }) | |||
|  |           ) | |||
|  |         } | |||
|  | 
 | |||
|  |         function e(a) { | |||
|  |           return 'function' != typeof a | |||
|  |             ? '' | |||
|  |             : '_name' in a | |||
|  |             ? a._name | |||
|  |             : 'name' in a | |||
|  |             ? a.name | |||
|  |             : k.call(a).match(n)[1] | |||
|  |         } | |||
|  | 
 | |||
|  |         function f(a, b) { | |||
|  |           return (b._name = a), b | |||
|  |         } | |||
|  | 
 | |||
|  |         function g(a) { | |||
|  |           function b(b, e) { | |||
|  |             return ( | |||
|  |               e || 2 === arguments.length | |||
|  |                 ? d.set(b, e) | |||
|  |                 : ((e = d.get(b)), e === c && ((e = a(b)), d.set(b, e))), | |||
|  |               e | |||
|  |             ) | |||
|  |           } | |||
|  | 
 | |||
|  |           var d = new p() | |||
|  |           return a || (a = q), b | |||
|  |         } | |||
|  | 
 | |||
|  |         var h = Object.getOwnPropertyNames, | |||
|  |           i = | |||
|  |             'object' == typeof window ? Object.getOwnPropertyNames(window) : [], | |||
|  |           j = Object.defineProperty, | |||
|  |           k = Function.prototype.toString, | |||
|  |           l = Object.create, | |||
|  |           m = Object.prototype.hasOwnProperty, | |||
|  |           n = /^\n?function\s?(\w*)?_?\(/, | |||
|  |           o = (function() { | |||
|  |             function a() { | |||
|  |               var a = g(), | |||
|  |                 c = {} | |||
|  |               this.unlock = function(d) { | |||
|  |                 var e = n(d) | |||
|  |                 if (m.call(e, a)) return e[a](c) | |||
|  |                 var f = l(null, b) | |||
|  |                 return ( | |||
|  |                   j(e, a, { | |||
|  |                     value: function(a) { | |||
|  |                       return a === c ? f : void 0 | |||
|  |                     } | |||
|  |                   }), | |||
|  |                   f | |||
|  |                 ) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             var b = { value: { writable: !0, value: c } }, | |||
|  |               e = l(null), | |||
|  |               g = function() { | |||
|  |                 var a = Math.random() | |||
|  |                   .toString(36) | |||
|  |                   .slice(2) | |||
|  |                 return a in e ? g() : (e[a] = a) | |||
|  |               }, | |||
|  |               k = g(), | |||
|  |               n = function(a) { | |||
|  |                 if (m.call(a, k)) return a[k] | |||
|  |                 if (!Object.isExtensible(a)) | |||
|  |                   throw new TypeError('Object must be extensible') | |||
|  |                 var b = l(null) | |||
|  |                 return j(a, k, { value: b }), b | |||
|  |               } | |||
|  |             return ( | |||
|  |               d( | |||
|  |                 Object, | |||
|  |                 f('getOwnPropertyNames', function(a) { | |||
|  |                   var b, | |||
|  |                     c = Object(a) | |||
|  |                   if ( | |||
|  |                     c !== Window.prototype && | |||
|  |                     'toString' in c && | |||
|  |                     '[object Window]' === c.toString() | |||
|  |                   ) | |||
|  |                     try { | |||
|  |                       b = h(a) | |||
|  |                     } catch (d) { | |||
|  |                       b = i | |||
|  |                     } | |||
|  |                   else b = h(a) | |||
|  |                   return m.call(a, k) && b.splice(b.indexOf(k), 1), b | |||
|  |                 }) | |||
|  |               ), | |||
|  |               d( | |||
|  |                 a.prototype, | |||
|  |                 f('get', function(a) { | |||
|  |                   return this.unlock(a).value | |||
|  |                 }) | |||
|  |               ), | |||
|  |               d( | |||
|  |                 a.prototype, | |||
|  |                 f('set', function(a, b) { | |||
|  |                   this.unlock(a).value = b | |||
|  |                 }) | |||
|  |               ), | |||
|  |               a | |||
|  |             ) | |||
|  |           })(), | |||
|  |           p = (function(g) { | |||
|  |             function h(b) { | |||
|  |               return this === a || null == this || this === h.prototype | |||
|  |                 ? new h(b) | |||
|  |                 : (p(this, new o()), void r(this, b)) | |||
|  |             } | |||
|  | 
 | |||
|  |             function i(a) { | |||
|  |               n(a) | |||
|  |               var d = q(this).get(a) | |||
|  |               return d === b ? c : d | |||
|  |             } | |||
|  | 
 | |||
|  |             function j(a, d) { | |||
|  |               n(a), q(this).set(a, d === c ? b : d) | |||
|  |             } | |||
|  | 
 | |||
|  |             function k(a) { | |||
|  |               return n(a), q(this).get(a) !== c | |||
|  |             } | |||
|  | 
 | |||
|  |             function l(a) { | |||
|  |               n(a) | |||
|  |               var b = q(this), | |||
|  |                 d = b.get(a) !== c | |||
|  |               return b.set(a, c), d | |||
|  |             } | |||
|  | 
 | |||
|  |             function m() { | |||
|  |               return q(this), '[object WeakMap]' | |||
|  |             } | |||
|  | 
 | |||
|  |             var n = function(a) { | |||
|  |                 if ( | |||
|  |                   null == a || | |||
|  |                   ('object' != typeof a && 'function' != typeof a) | |||
|  |                 ) | |||
|  |                   throw new TypeError('Invalid WeakMap key') | |||
|  |               }, | |||
|  |               p = function(a, b) { | |||
|  |                 var c = g.unlock(a) | |||
|  |                 if (c.value) throw new TypeError('Object is already a WeakMap') | |||
|  |                 c.value = b | |||
|  |               }, | |||
|  |               q = function(a) { | |||
|  |                 var b = g.unlock(a).value | |||
|  |                 if (!b) throw new TypeError('WeakMap is not generic') | |||
|  |                 return b | |||
|  |               }, | |||
|  |               r = function(a, b) { | |||
|  |                 null !== b && | |||
|  |                   'object' == typeof b && | |||
|  |                   'function' == typeof b.forEach && | |||
|  |                   b.forEach(function(c, d) { | |||
|  |                     c instanceof Array && | |||
|  |                       2 === c.length && | |||
|  |                       j.call(a, b[d][0], b[d][1]) | |||
|  |                   }) | |||
|  |               } | |||
|  |             ;(i._name = 'get'), | |||
|  |               (j._name = 'set'), | |||
|  |               (k._name = 'has'), | |||
|  |               (m._name = 'toString') | |||
|  |             var s = ('' + Object).split('Object'), | |||
|  |               t = f('toString', function() { | |||
|  |                 return s[0] + e(this) + s[1] | |||
|  |               }) | |||
|  |             d(t, t) | |||
|  |             var u = | |||
|  |               { __proto__: [] } instanceof Array | |||
|  |                 ? function(a) { | |||
|  |                     a.__proto__ = t | |||
|  |                   } | |||
|  |                 : function(a) { | |||
|  |                     d(a, t) | |||
|  |                   } | |||
|  |             return ( | |||
|  |               u(h), | |||
|  |               [m, i, j, k, l].forEach(function(a) { | |||
|  |                 d(h.prototype, a), u(a) | |||
|  |               }), | |||
|  |               h | |||
|  |             ) | |||
|  |           })(new o()), | |||
|  |           q = Object.create | |||
|  |             ? function() { | |||
|  |                 return Object.create(null) | |||
|  |               } | |||
|  |             : function() { | |||
|  |                 return {} | |||
|  |               } | |||
|  |         'undefined' != typeof module | |||
|  |           ? (module.exports = p) | |||
|  |           : 'undefined' != typeof exports | |||
|  |           ? (exports.WeakMap = p) | |||
|  |           : 'WeakMap' in a || (a.WeakMap = p), | |||
|  |           (p.createStorage = g), | |||
|  |           a.WeakMap && (a.WeakMap.createStorage = g) | |||
|  |       })( | |||
|  |         (function() { | |||
|  |           return this | |||
|  |         })() | |||
|  |       ) | |||
|  |     !(function(e) { | |||
|  |       if ('object' == typeof exports && 'undefined' != typeof module) | |||
|  |         module.exports = e() | |||
|  |       else if ('function' == typeof define && define.amd) | |||
|  |         define('markdown-it-sanitizer', [], e) | |||
|  |       else { | |||
|  |         var t | |||
|  |         ;(t = | |||
|  |           'undefined' != typeof window | |||
|  |             ? window | |||
|  |             : 'undefined' != typeof global | |||
|  |             ? global | |||
|  |             : 'undefined' != typeof self | |||
|  |             ? self | |||
|  |             : this), | |||
|  |           (t.markdownitSanitizer = e()) | |||
|  |       } | |||
|  |     })(function() { | |||
|  |       return (function e(t, n, r) { | |||
|  |         function o(l, f) { | |||
|  |           if (!n[l]) { | |||
|  |             if (!t[l]) { | |||
|  |               var a = 'function' == typeof require && require | |||
|  |               if (!f && a) return a(l, !0) | |||
|  |               if (i) return i(l, !0) | |||
|  |               var s = new Error("Cannot find module '" + l + "'") | |||
|  |               throw ((s.code = 'MODULE_NOT_FOUND'), s) | |||
|  |             } | |||
|  |             var u = (n[l] = { exports: {} }) | |||
|  |             t[l][0].call( | |||
|  |               u.exports, | |||
|  |               function(e) { | |||
|  |                 var n = t[l][1][e] | |||
|  |                 return o(n ? n : e) | |||
|  |               }, | |||
|  |               u, | |||
|  |               u.exports, | |||
|  |               e, | |||
|  |               t, | |||
|  |               n, | |||
|  |               r | |||
|  |             ) | |||
|  |           } | |||
|  |           return n[l].exports | |||
|  |         } | |||
|  | 
 | |||
|  |         for ( | |||
|  |           var i = 'function' == typeof require && require, l = 0; | |||
|  |           l < r.length; | |||
|  |           l++ | |||
|  |         ) | |||
|  |           o(r[l]) | |||
|  |         return o | |||
|  |       })( | |||
|  |         { | |||
|  |           1: [ | |||
|  |             function(e, t, n) { | |||
|  |               'use strict' | |||
|  |               t.exports = function(e, t) { | |||
|  |                 function n(e) { | |||
|  |                   var t = l.match(e) | |||
|  |                   return t && | |||
|  |                     1 === t.length && | |||
|  |                     0 === t[0].index && | |||
|  |                     t[0].lastIndex === e.length | |||
|  |                     ? t[0].url | |||
|  |                     : null | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function r(e) { | |||
|  |                   var t = '<a\\shref="([^"<>]*)"(?:\\stitle="([^"<>]*)")?>', | |||
|  |                     r = RegExp(t, 'i'), | |||
|  |                     o = '<img\\s([^<>]*src="[^"<>]*"[^<>]*)\\s?\\/?>', | |||
|  |                     i = RegExp(o, 'i') | |||
|  |                   return (e = e.replace(/<[^<>]*>?/gi, function(e) { | |||
|  |                     var t, o, l, a, u | |||
|  |                     if (/(^<->|^<-\s|^<3\s)/.test(e)) return e | |||
|  |                     if ((t = e.match(i))) { | |||
|  |                       var m = t[1] | |||
|  |                       if ( | |||
|  |                         ((o = n(m.match(/src="([^"<>]*)"/i)[1])), | |||
|  |                         (l = m.match(/alt="([^"<>]*)"/i)), | |||
|  |                         (l = l && 'undefined' != typeof l[1] ? l[1] : ''), | |||
|  |                         (a = m.match(/title="([^"<>]*)"/i)), | |||
|  |                         (a = a && 'undefined' != typeof a[1] ? a[1] : ''), | |||
|  |                         o && /^https?:\/\//i.test(o)) | |||
|  |                       ) | |||
|  |                         return '' !== c | |||
|  |                           ? '<img src="' + | |||
|  |                               o + | |||
|  |                               '" alt="' + | |||
|  |                               l + | |||
|  |                               '" title="' + | |||
|  |                               a + | |||
|  |                               '" class="' + | |||
|  |                               c + | |||
|  |                               '">' | |||
|  |                           : '<img src="' + | |||
|  |                               o + | |||
|  |                               '" alt="' + | |||
|  |                               l + | |||
|  |                               '" title="' + | |||
|  |                               a + | |||
|  |                               '">' | |||
|  |                     } | |||
|  |                     return ( | |||
|  |                       (u = d.indexOf('a')), | |||
|  |                       (t = e.match(r)), | |||
|  |                       t && | |||
|  |                       ((a = 'undefined' != typeof t[2] ? t[2] : ''), | |||
|  |                       (o = n(t[1])), | |||
|  |                       o && /^(?:https?:\/\/|ftp:\/\/|mailto:|xmpp:)/i.test(o)) | |||
|  |                         ? ((p = !0), | |||
|  |                           (h[u] += 1), | |||
|  |                           '<a href="' + | |||
|  |                             o + | |||
|  |                             '" title="' + | |||
|  |                             a + | |||
|  |                             '" target="_blank">') | |||
|  |                         : (t = /<\/a>/i.test(e)) | |||
|  |                         ? ((p = !0), | |||
|  |                           (h[u] -= 1), | |||
|  |                           h[u] < 0 && (g[u] = !0), | |||
|  |                           '</a>') | |||
|  |                         : (t = e.match(/<(br|hr)\s?\/?>/i)) | |||
|  |                         ? '<' + t[1].toLowerCase() + '>' | |||
|  |                         : ((t = e.match( | |||
|  |                             /<(\/?)(b|blockquote|code|em|h[1-6]|li|ol(?: start="\d+")?|p|pre|s|sub|sup|strong|ul)>/i | |||
|  |                           )), | |||
|  |                           t && !/<\/ol start="\d+"/i.test(e) | |||
|  |                             ? ((p = !0), | |||
|  |                               (u = d.indexOf(t[2].toLowerCase().split(' ')[0])), | |||
|  |                               '/' === t[1] ? (h[u] -= 1) : (h[u] += 1), | |||
|  |                               h[u] < 0 && (g[u] = !0), | |||
|  |                               '<' + t[1] + t[2].toLowerCase() + '>') | |||
|  |                             : s === !0 | |||
|  |                             ? '' | |||
|  |                             : f(e)) | |||
|  |                     ) | |||
|  |                   })) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function o(e) { | |||
|  |                   var t, n, o | |||
|  |                   for (a = 0; a < d.length; a++) h[a] = 0 | |||
|  |                   for (a = 0; a < d.length; a++) g[a] = !1 | |||
|  |                   for (p = !1, n = 0; n < e.tokens.length; n++) | |||
|  |                     if ( | |||
|  |                       ('html_block' === e.tokens[n].type && | |||
|  |                         (e.tokens[n].content = r(e.tokens[n].content)), | |||
|  |                       'inline' === e.tokens[n].type) | |||
|  |                     ) | |||
|  |                       for (o = e.tokens[n].children, t = 0; t < o.length; t++) | |||
|  |                         'html_inline' === o[t].type && | |||
|  |                           (o[t].content = r(o[t].content)) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function i(e) { | |||
|  |                   function t(e, t) { | |||
|  |                     var n, r | |||
|  |                     return ( | |||
|  |                       (n = | |||
|  |                         'a' === t | |||
|  |                           ? RegExp( | |||
|  |                               '<a href="[^"<>]*" title="[^"<>]*" target="_blank">', | |||
|  |                               'g' | |||
|  |                             ) | |||
|  |                           : 'ol' === t | |||
|  |                           ? /<ol(?: start="\d+")?>/g | |||
|  |                           : RegExp('<' + t + '>', 'g')), | |||
|  |                       (r = RegExp('</' + t + '>', 'g')), | |||
|  |                       u === !0 | |||
|  |                         ? ((e = e.replace(n, '')), (e = e.replace(r, ''))) | |||
|  |                         : ((e = e.replace(n, function(e) { | |||
|  |                             return f(e) | |||
|  |                           })), | |||
|  |                           (e = e.replace(r, function(e) { | |||
|  |                             return f(e) | |||
|  |                           }))), | |||
|  |                       e | |||
|  |                     ) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function n(e) { | |||
|  |                     var n | |||
|  |                     for (n = 0; n < d.length; n++) | |||
|  |                       g[n] === !0 && (e = t(e, d[n])) | |||
|  |                     return e | |||
|  |                   } | |||
|  | 
 | |||
|  |                   if (p !== !1) { | |||
|  |                     var r, o | |||
|  |                     for (a = 0; a < d.length; a++) 0 !== h[a] && (g[a] = !0) | |||
|  |                     for (r = 0; r < e.tokens.length; r++) | |||
|  |                       if ('html_block' !== e.tokens[r].type) { | |||
|  |                         if ('inline' === e.tokens[r].type) | |||
|  |                           for ( | |||
|  |                             o = e.tokens[r].children, a = 0; | |||
|  |                             a < o.length; | |||
|  |                             a++ | |||
|  |                           ) | |||
|  |                             'html_inline' === o[a].type && | |||
|  |                               (o[a].content = n(o[a].content)) | |||
|  |                       } else e.tokens[r].content = n(e.tokens[r].content) | |||
|  |                   } | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var l = e.linkify, | |||
|  |                   f = e.utils.escapeHtml | |||
|  |                 t = t ? t : {} | |||
|  |                 var a, | |||
|  |                   s = | |||
|  |                     'undefined' != typeof t.removeUnknown | |||
|  |                       ? t.removeUnknown | |||
|  |                       : !1, | |||
|  |                   u = | |||
|  |                     'undefined' != typeof t.removeUnbalanced | |||
|  |                       ? t.removeUnbalanced | |||
|  |                       : !1, | |||
|  |                   c = 'undefined' != typeof t.imageClass ? t.imageClass : '', | |||
|  |                   p = !1, | |||
|  |                   d = [ | |||
|  |                     'a', | |||
|  |                     'b', | |||
|  |                     'blockquote', | |||
|  |                     'code', | |||
|  |                     'em', | |||
|  |                     'h1', | |||
|  |                     'h2', | |||
|  |                     'h3', | |||
|  |                     'h4', | |||
|  |                     'h5', | |||
|  |                     'h6', | |||
|  |                     'li', | |||
|  |                     'ol', | |||
|  |                     'p', | |||
|  |                     'pre', | |||
|  |                     's', | |||
|  |                     'sub', | |||
|  |                     'sup', | |||
|  |                     'strong', | |||
|  |                     'ul' | |||
|  |                   ], | |||
|  |                   h = new Array(d.length), | |||
|  |                   g = new Array(d.length) | |||
|  |                 for (a = 0; a < d.length; a++) h[a] = 0 | |||
|  |                 for (a = 0; a < d.length; a++) g[a] = !1 | |||
|  |                 e.core.ruler.after('linkify', 'sanitize_inline', o), | |||
|  |                   e.core.ruler.after('sanitize_inline', 'sanitize_balance', i) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ] | |||
|  |         }, | |||
|  |         {}, | |||
|  |         [1] | |||
|  |       )(1) | |||
|  |     }) | |||
|  |     !(function(e) { | |||
|  |       if ('object' == typeof exports && 'undefined' != typeof module) | |||
|  |         module.exports = e() | |||
|  |       else if ('function' == typeof define && define.amd) | |||
|  |         define('markdown-it', [], e) | |||
|  |       else { | |||
|  |         var r | |||
|  |         ;(r = | |||
|  |           'undefined' != typeof window | |||
|  |             ? window | |||
|  |             : 'undefined' != typeof global | |||
|  |             ? global | |||
|  |             : 'undefined' != typeof self | |||
|  |             ? self | |||
|  |             : this), | |||
|  |           (r.markdownit = e()) | |||
|  |       } | |||
|  |     })(function() { | |||
|  |       var e | |||
|  |       return (function r(e, t, n) { | |||
|  |         function s(i, a) { | |||
|  |           if (!t[i]) { | |||
|  |             if (!e[i]) { | |||
|  |               var c = 'function' == typeof require && require | |||
|  |               if (!a && c) return c(i, !0) | |||
|  |               if (o) return o(i, !0) | |||
|  |               var l = new Error("Cannot find module '" + i + "'") | |||
|  |               throw ((l.code = 'MODULE_NOT_FOUND'), l) | |||
|  |             } | |||
|  |             var u = (t[i] = { exports: {} }) | |||
|  |             e[i][0].call( | |||
|  |               u.exports, | |||
|  |               function(r) { | |||
|  |                 var t = e[i][1][r] | |||
|  |                 return s(t ? t : r) | |||
|  |               }, | |||
|  |               u, | |||
|  |               u.exports, | |||
|  |               r, | |||
|  |               e, | |||
|  |               t, | |||
|  |               n | |||
|  |             ) | |||
|  |           } | |||
|  |           return t[i].exports | |||
|  |         } | |||
|  | 
 | |||
|  |         for ( | |||
|  |           var o = 'function' == typeof require && require, i = 0; | |||
|  |           i < n.length; | |||
|  |           i++ | |||
|  |         ) | |||
|  |           s(n[i]) | |||
|  |         return s | |||
|  |       })( | |||
|  |         { | |||
|  |           1: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = e('entities/maps/entities.json') | |||
|  |             }, | |||
|  |             { 'entities/maps/entities.json': 53 } | |||
|  |           ], | |||
|  |           2: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = [ | |||
|  |                 'address', | |||
|  |                 'article', | |||
|  |                 'aside', | |||
|  |                 'base', | |||
|  |                 'basefont', | |||
|  |                 'blockquote', | |||
|  |                 'body', | |||
|  |                 'caption', | |||
|  |                 'center', | |||
|  |                 'col', | |||
|  |                 'colgroup', | |||
|  |                 'dd', | |||
|  |                 'details', | |||
|  |                 'dialog', | |||
|  |                 'dir', | |||
|  |                 'div', | |||
|  |                 'dl', | |||
|  |                 'dt', | |||
|  |                 'fieldset', | |||
|  |                 'figcaption', | |||
|  |                 'figure', | |||
|  |                 'footer', | |||
|  |                 'form', | |||
|  |                 'frame', | |||
|  |                 'frameset', | |||
|  |                 'h1', | |||
|  |                 'head', | |||
|  |                 'header', | |||
|  |                 'hr', | |||
|  |                 'html', | |||
|  |                 'iframe', | |||
|  |                 'legend', | |||
|  |                 'li', | |||
|  |                 'link', | |||
|  |                 'main', | |||
|  |                 'menu', | |||
|  |                 'menuitem', | |||
|  |                 'meta', | |||
|  |                 'nav', | |||
|  |                 'noframes', | |||
|  |                 'ol', | |||
|  |                 'optgroup', | |||
|  |                 'option', | |||
|  |                 'p', | |||
|  |                 'param', | |||
|  |                 'pre', | |||
|  |                 'section', | |||
|  |                 'source', | |||
|  |                 'title', | |||
|  |                 'summary', | |||
|  |                 'table', | |||
|  |                 'tbody', | |||
|  |                 'td', | |||
|  |                 'tfoot', | |||
|  |                 'th', | |||
|  |                 'thead', | |||
|  |                 'title', | |||
|  |                 'tr', | |||
|  |                 'track', | |||
|  |                 'ul' | |||
|  |               ] | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           3: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = '[a-zA-Z_:][a-zA-Z0-9:._-]*', | |||
|  |                 s = '[^"\'=<>`\\x00-\\x20]+', | |||
|  |                 o = "'[^']*'", | |||
|  |                 i = '"[^"]*"', | |||
|  |                 a = '(?:' + s + '|' + o + '|' + i + ')', | |||
|  |                 c = '(?:\\s+' + n + '(?:\\s*=\\s*' + a + ')?)', | |||
|  |                 l = '<[A-Za-z][A-Za-z0-9\\-]*' + c + '*\\s*\\/?>', | |||
|  |                 u = '<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>', | |||
|  |                 p = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->', | |||
|  |                 h = '<[?].*?[?]>', | |||
|  |                 f = '<![A-Z]+\\s+[^>]*>', | |||
|  |                 d = '<!\\[CDATA\\[[\\s\\S]*?\\]\\]>', | |||
|  |                 m = new RegExp( | |||
|  |                   '^(?:' + | |||
|  |                     l + | |||
|  |                     '|' + | |||
|  |                     u + | |||
|  |                     '|' + | |||
|  |                     p + | |||
|  |                     '|' + | |||
|  |                     h + | |||
|  |                     '|' + | |||
|  |                     f + | |||
|  |                     '|' + | |||
|  |                     d + | |||
|  |                     ')' | |||
|  |                 ), | |||
|  |                 _ = new RegExp('^(?:' + l + '|' + u + ')') | |||
|  |               ;(r.exports.HTML_TAG_RE = m), | |||
|  |                 (r.exports.HTML_OPEN_CLOSE_TAG_RE = _) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           4: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 return Object.prototype.toString.call(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 return '[object String]' === n(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function o(e, r) { | |||
|  |                 return x.call(e, r) | |||
|  |               } | |||
|  | 
 | |||
|  |               function i(e) { | |||
|  |                 var r = Array.prototype.slice.call(arguments, 1) | |||
|  |                 return ( | |||
|  |                   r.forEach(function(r) { | |||
|  |                     if (r) { | |||
|  |                       if ('object' != typeof r) | |||
|  |                         throw new TypeError(r + 'must be object') | |||
|  |                       Object.keys(r).forEach(function(t) { | |||
|  |                         e[t] = r[t] | |||
|  |                       }) | |||
|  |                     } | |||
|  |                   }), | |||
|  |                   e | |||
|  |                 ) | |||
|  |               } | |||
|  | 
 | |||
|  |               function a(e, r, t) { | |||
|  |                 return [].concat(e.slice(0, r), t, e.slice(r + 1)) | |||
|  |               } | |||
|  | 
 | |||
|  |               function c(e) { | |||
|  |                 return ( | |||
|  |                   !(e >= 55296 && e <= 57343) && | |||
|  |                   !(e >= 64976 && e <= 65007) && | |||
|  |                   65535 !== (65535 & e) && | |||
|  |                   65534 !== (65535 & e) && | |||
|  |                   !(e >= 0 && e <= 8) && | |||
|  |                   11 !== e && | |||
|  |                   !(e >= 14 && e <= 31) && | |||
|  |                   !(e >= 127 && e <= 159) && | |||
|  |                   !(e > 1114111) | |||
|  |                 ) | |||
|  |               } | |||
|  | 
 | |||
|  |               function l(e) { | |||
|  |                 if (e > 65535) { | |||
|  |                   e -= 65536 | |||
|  |                   var r = 55296 + (e >> 10), | |||
|  |                     t = 56320 + (1023 & e) | |||
|  |                   return String.fromCharCode(r, t) | |||
|  |                 } | |||
|  |                 return String.fromCharCode(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function u(e, r) { | |||
|  |                 var t = 0 | |||
|  |                 return o(D, r) | |||
|  |                   ? D[r] | |||
|  |                   : 35 === r.charCodeAt(0) && | |||
|  |                     w.test(r) && | |||
|  |                     ((t = | |||
|  |                       'x' === r[1].toLowerCase() | |||
|  |                         ? parseInt(r.slice(2), 16) | |||
|  |                         : parseInt(r.slice(1), 10)), | |||
|  |                     c(t)) | |||
|  |                   ? l(t) | |||
|  |                   : e | |||
|  |               } | |||
|  | 
 | |||
|  |               function p(e) { | |||
|  |                 return e.indexOf('\\') < 0 ? e : e.replace(y, '$1') | |||
|  |               } | |||
|  | 
 | |||
|  |               function h(e) { | |||
|  |                 return e.indexOf('\\') < 0 && e.indexOf('&') < 0 | |||
|  |                   ? e | |||
|  |                   : e.replace(A, function(e, r, t) { | |||
|  |                       return r ? r : u(e, t) | |||
|  |                     }) | |||
|  |               } | |||
|  | 
 | |||
|  |               function f(e) { | |||
|  |                 return S[e] | |||
|  |               } | |||
|  | 
 | |||
|  |               function d(e) { | |||
|  |                 return q.test(e) ? e.replace(E, f) : e | |||
|  |               } | |||
|  | 
 | |||
|  |               function m(e) { | |||
|  |                 return e.replace(F, '\\$&') | |||
|  |               } | |||
|  | 
 | |||
|  |               function _(e) { | |||
|  |                 switch (e) { | |||
|  |                   case 9: | |||
|  |                   case 32: | |||
|  |                     return !0 | |||
|  |                 } | |||
|  |                 return !1 | |||
|  |               } | |||
|  | 
 | |||
|  |               function g(e) { | |||
|  |                 if (e >= 8192 && e <= 8202) return !0 | |||
|  |                 switch (e) { | |||
|  |                   case 9: | |||
|  |                   case 10: | |||
|  |                   case 11: | |||
|  |                   case 12: | |||
|  |                   case 13: | |||
|  |                   case 32: | |||
|  |                   case 160: | |||
|  |                   case 5760: | |||
|  |                   case 8239: | |||
|  |                   case 8287: | |||
|  |                   case 12288: | |||
|  |                     return !0 | |||
|  |                 } | |||
|  |                 return !1 | |||
|  |               } | |||
|  | 
 | |||
|  |               function k(e) { | |||
|  |                 return z.test(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function b(e) { | |||
|  |                 switch (e) { | |||
|  |                   case 33: | |||
|  |                   case 34: | |||
|  |                   case 35: | |||
|  |                   case 36: | |||
|  |                   case 37: | |||
|  |                   case 38: | |||
|  |                   case 39: | |||
|  |                   case 40: | |||
|  |                   case 41: | |||
|  |                   case 42: | |||
|  |                   case 43: | |||
|  |                   case 44: | |||
|  |                   case 45: | |||
|  |                   case 46: | |||
|  |                   case 47: | |||
|  |                   case 58: | |||
|  |                   case 59: | |||
|  |                   case 60: | |||
|  |                   case 61: | |||
|  |                   case 62: | |||
|  |                   case 63: | |||
|  |                   case 64: | |||
|  |                   case 91: | |||
|  |                   case 92: | |||
|  |                   case 93: | |||
|  |                   case 94: | |||
|  |                   case 95: | |||
|  |                   case 96: | |||
|  |                   case 123: | |||
|  |                   case 124: | |||
|  |                   case 125: | |||
|  |                   case 126: | |||
|  |                     return !0 | |||
|  |                   default: | |||
|  |                     return !1 | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               function v(e) { | |||
|  |                 return e | |||
|  |                   .trim() | |||
|  |                   .replace(/\s+/g, ' ') | |||
|  |                   .toUpperCase() | |||
|  |               } | |||
|  | 
 | |||
|  |               var x = Object.prototype.hasOwnProperty, | |||
|  |                 y = /\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g, | |||
|  |                 C = /&([a-z#][a-z0-9]{1,31});/gi, | |||
|  |                 A = new RegExp(y.source + '|' + C.source, 'gi'), | |||
|  |                 w = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i, | |||
|  |                 D = e('./entities'), | |||
|  |                 q = /[&<>"]/, | |||
|  |                 E = /[&<>"]/g, | |||
|  |                 S = { '&': '&', '<': '<', '>': '>', '"': '"' }, | |||
|  |                 F = /[.?*+^$[\]\\(){}|-]/g, | |||
|  |                 z = e('uc.micro/categories/P/regex') | |||
|  |               ;(t.lib = {}), | |||
|  |                 (t.lib.mdurl = e('mdurl')), | |||
|  |                 (t.lib.ucmicro = e('uc.micro')), | |||
|  |                 (t.assign = i), | |||
|  |                 (t.isString = s), | |||
|  |                 (t.has = o), | |||
|  |                 (t.unescapeMd = p), | |||
|  |                 (t.unescapeAll = h), | |||
|  |                 (t.isValidEntityCode = c), | |||
|  |                 (t.fromCodePoint = l), | |||
|  |                 (t.escapeHtml = d), | |||
|  |                 (t.arrayReplaceAt = a), | |||
|  |                 (t.isSpace = _), | |||
|  |                 (t.isWhiteSpace = g), | |||
|  |                 (t.isMdAsciiPunct = b), | |||
|  |                 (t.isPunctChar = k), | |||
|  |                 (t.escapeRE = m), | |||
|  |                 (t.normalizeReference = v) | |||
|  |             }, | |||
|  |             { | |||
|  |               './entities': 1, | |||
|  |               mdurl: 59, | |||
|  |               'uc.micro': 65, | |||
|  |               'uc.micro/categories/P/regex': 63 | |||
|  |             } | |||
|  |           ], | |||
|  |           5: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               ;(t.parseLinkLabel = e('./parse_link_label')), | |||
|  |                 (t.parseLinkDestination = e('./parse_link_destination')), | |||
|  |                 (t.parseLinkTitle = e('./parse_link_title')) | |||
|  |             }, | |||
|  |             { | |||
|  |               './parse_link_destination': 6, | |||
|  |               './parse_link_label': 7, | |||
|  |               './parse_link_title': 8 | |||
|  |             } | |||
|  |           ], | |||
|  |           6: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/utils').isSpace, | |||
|  |                 s = e('../common/utils').unescapeAll | |||
|  |               r.exports = function(e, r, t) { | |||
|  |                 var o, | |||
|  |                   i, | |||
|  |                   a = 0, | |||
|  |                   c = r, | |||
|  |                   l = { ok: !1, pos: 0, lines: 0, str: '' } | |||
|  |                 if (60 === e.charCodeAt(r)) { | |||
|  |                   for (r++; r < t; ) { | |||
|  |                     if (((o = e.charCodeAt(r)), 10 === o || n(o))) return l | |||
|  |                     if (62 === o) | |||
|  |                       return ( | |||
|  |                         (l.pos = r + 1), | |||
|  |                         (l.str = s(e.slice(c + 1, r))), | |||
|  |                         (l.ok = !0), | |||
|  |                         l | |||
|  |                       ) | |||
|  |                     92 === o && r + 1 < t ? (r += 2) : r++ | |||
|  |                   } | |||
|  |                   return l | |||
|  |                 } | |||
|  |                 for ( | |||
|  |                   i = 0; | |||
|  |                   r < t && | |||
|  |                   ((o = e.charCodeAt(r)), 32 !== o) && | |||
|  |                   !(o < 32 || 127 === o); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   if (92 === o && r + 1 < t) r += 2 | |||
|  |                   else { | |||
|  |                     if (40 === o && (i++, i > 1)) break | |||
|  |                     if (41 === o && (i--, i < 0)) break | |||
|  |                     r++ | |||
|  |                   } | |||
|  |                 return c === r | |||
|  |                   ? l | |||
|  |                   : ((l.str = s(e.slice(c, r))), | |||
|  |                     (l.lines = a), | |||
|  |                     (l.pos = r), | |||
|  |                     (l.ok = !0), | |||
|  |                     l) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           7: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r, t) { | |||
|  |                 var n, | |||
|  |                   s, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a = -1, | |||
|  |                   c = e.posMax, | |||
|  |                   l = e.pos | |||
|  |                 for (e.pos = r + 1, n = 1; e.pos < c; ) { | |||
|  |                   if ( | |||
|  |                     ((o = e.src.charCodeAt(e.pos)), 93 === o && (n--, 0 === n)) | |||
|  |                   ) { | |||
|  |                     s = !0 | |||
|  |                     break | |||
|  |                   } | |||
|  |                   if (((i = e.pos), e.md.inline.skipToken(e), 91 === o)) | |||
|  |                     if (i === e.pos - 1) n++ | |||
|  |                     else if (t) return (e.pos = l), -1 | |||
|  |                 } | |||
|  |                 return s && (a = e.pos), (e.pos = l), a | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           8: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/utils').unescapeAll | |||
|  |               r.exports = function(e, r, t) { | |||
|  |                 var s, | |||
|  |                   o, | |||
|  |                   i = 0, | |||
|  |                   a = r, | |||
|  |                   c = { ok: !1, pos: 0, lines: 0, str: '' } | |||
|  |                 if (r >= t) return c | |||
|  |                 if (((o = e.charCodeAt(r)), 34 !== o && 39 !== o && 40 !== o)) | |||
|  |                   return c | |||
|  |                 for (r++, 40 === o && (o = 41); r < t; ) { | |||
|  |                   if (((s = e.charCodeAt(r)), s === o)) | |||
|  |                     return ( | |||
|  |                       (c.pos = r + 1), | |||
|  |                       (c.lines = i), | |||
|  |                       (c.str = n(e.slice(a + 1, r))), | |||
|  |                       (c.ok = !0), | |||
|  |                       c | |||
|  |                     ) | |||
|  |                   10 === s | |||
|  |                     ? i++ | |||
|  |                     : 92 === s && | |||
|  |                       r + 1 < t && | |||
|  |                       (r++, 10 === e.charCodeAt(r) && i++), | |||
|  |                     r++ | |||
|  |                 } | |||
|  |                 return c | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           9: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 var r = e.trim().toLowerCase() | |||
|  |                 return !g.test(r) || !!k.test(r) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 var r = d.parse(e, !0) | |||
|  |                 if (r.hostname && (!r.protocol || b.indexOf(r.protocol) >= 0)) | |||
|  |                   try { | |||
|  |                     r.hostname = m.toASCII(r.hostname) | |||
|  |                   } catch (t) {} | |||
|  |                 return d.encode(d.format(r)) | |||
|  |               } | |||
|  | 
 | |||
|  |               function o(e) { | |||
|  |                 var r = d.parse(e, !0) | |||
|  |                 if (r.hostname && (!r.protocol || b.indexOf(r.protocol) >= 0)) | |||
|  |                   try { | |||
|  |                     r.hostname = m.toUnicode(r.hostname) | |||
|  |                   } catch (t) {} | |||
|  |                 return d.decode(d.format(r)) | |||
|  |               } | |||
|  | 
 | |||
|  |               function i(e, r) { | |||
|  |                 return this instanceof i | |||
|  |                   ? (r || a.isString(e) || ((r = e || {}), (e = 'default')), | |||
|  |                     (this.inline = new h()), | |||
|  |                     (this.block = new p()), | |||
|  |                     (this.core = new u()), | |||
|  |                     (this.renderer = new l()), | |||
|  |                     (this.linkify = new f()), | |||
|  |                     (this.validateLink = n), | |||
|  |                     (this.normalizeLink = s), | |||
|  |                     (this.normalizeLinkText = o), | |||
|  |                     (this.utils = a), | |||
|  |                     (this.helpers = c), | |||
|  |                     (this.options = {}), | |||
|  |                     this.configure(e), | |||
|  |                     void (r && this.set(r))) | |||
|  |                   : new i(e, r) | |||
|  |               } | |||
|  | 
 | |||
|  |               var a = e('./common/utils'), | |||
|  |                 c = e('./helpers'), | |||
|  |                 l = e('./renderer'), | |||
|  |                 u = e('./parser_core'), | |||
|  |                 p = e('./parser_block'), | |||
|  |                 h = e('./parser_inline'), | |||
|  |                 f = e('linkify-it'), | |||
|  |                 d = e('mdurl'), | |||
|  |                 m = e('punycode'), | |||
|  |                 _ = { | |||
|  |                   default: e('./presets/default'), | |||
|  |                   zero: e('./presets/zero'), | |||
|  |                   commonmark: e('./presets/commonmark') | |||
|  |                 }, | |||
|  |                 g = /^(vbscript|javascript|file|data):/, | |||
|  |                 k = /^data:image\/(gif|png|jpeg|webp);/, | |||
|  |                 b = ['http:', 'https:', 'mailto:'] | |||
|  |               ;(i.prototype.set = function(e) { | |||
|  |                 return a.assign(this.options, e), this | |||
|  |               }), | |||
|  |                 (i.prototype.configure = function(e) { | |||
|  |                   var r, | |||
|  |                     t = this | |||
|  |                   if (a.isString(e) && ((r = e), (e = _[r]), !e)) | |||
|  |                     throw new Error( | |||
|  |                       'Wrong `markdown-it` preset "' + r + '", check name' | |||
|  |                     ) | |||
|  |                   if (!e) | |||
|  |                     throw new Error( | |||
|  |                       "Wrong `markdown-it` preset, can't be empty" | |||
|  |                     ) | |||
|  |                   return ( | |||
|  |                     e.options && t.set(e.options), | |||
|  |                     e.components && | |||
|  |                       Object.keys(e.components).forEach(function(r) { | |||
|  |                         e.components[r].rules && | |||
|  |                           t[r].ruler.enableOnly(e.components[r].rules), | |||
|  |                           e.components[r].rules2 && | |||
|  |                             t[r].ruler2.enableOnly(e.components[r].rules2) | |||
|  |                       }), | |||
|  |                     this | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (i.prototype.enable = function(e, r) { | |||
|  |                   var t = [] | |||
|  |                   Array.isArray(e) || (e = [e]), | |||
|  |                     ['core', 'block', 'inline'].forEach(function(r) { | |||
|  |                       t = t.concat(this[r].ruler.enable(e, !0)) | |||
|  |                     }, this), | |||
|  |                     (t = t.concat(this.inline.ruler2.enable(e, !0))) | |||
|  |                   var n = e.filter(function(e) { | |||
|  |                     return t.indexOf(e) < 0 | |||
|  |                   }) | |||
|  |                   if (n.length && !r) | |||
|  |                     throw new Error( | |||
|  |                       'MarkdownIt. Failed to enable unknown rule(s): ' + n | |||
|  |                     ) | |||
|  |                   return this | |||
|  |                 }), | |||
|  |                 (i.prototype.disable = function(e, r) { | |||
|  |                   var t = [] | |||
|  |                   Array.isArray(e) || (e = [e]), | |||
|  |                     ['core', 'block', 'inline'].forEach(function(r) { | |||
|  |                       t = t.concat(this[r].ruler.disable(e, !0)) | |||
|  |                     }, this), | |||
|  |                     (t = t.concat(this.inline.ruler2.disable(e, !0))) | |||
|  |                   var n = e.filter(function(e) { | |||
|  |                     return t.indexOf(e) < 0 | |||
|  |                   }) | |||
|  |                   if (n.length && !r) | |||
|  |                     throw new Error( | |||
|  |                       'MarkdownIt. Failed to disable unknown rule(s): ' + n | |||
|  |                     ) | |||
|  |                   return this | |||
|  |                 }), | |||
|  |                 (i.prototype.use = function(e) { | |||
|  |                   var r = [this].concat( | |||
|  |                     Array.prototype.slice.call(arguments, 1) | |||
|  |                   ) | |||
|  |                   return e.apply(e, r), this | |||
|  |                 }), | |||
|  |                 (i.prototype.parse = function(e, r) { | |||
|  |                   var t = new this.core.State(e, this, r) | |||
|  |                   return this.core.process(t), t.tokens | |||
|  |                 }), | |||
|  |                 (i.prototype.render = function(e, r) { | |||
|  |                   return ( | |||
|  |                     (r = r || {}), | |||
|  |                     this.renderer.render(this.parse(e, r), this.options, r) | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (i.prototype.parseInline = function(e, r) { | |||
|  |                   var t = new this.core.State(e, this, r) | |||
|  |                   return (t.inlineMode = !0), this.core.process(t), t.tokens | |||
|  |                 }), | |||
|  |                 (i.prototype.renderInline = function(e, r) { | |||
|  |                   return ( | |||
|  |                     (r = r || {}), | |||
|  |                     this.renderer.render( | |||
|  |                       this.parseInline(e, r), | |||
|  |                       this.options, | |||
|  |                       r | |||
|  |                     ) | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (r.exports = i) | |||
|  |             }, | |||
|  |             { | |||
|  |               './common/utils': 4, | |||
|  |               './helpers': 5, | |||
|  |               './parser_block': 10, | |||
|  |               './parser_core': 11, | |||
|  |               './parser_inline': 12, | |||
|  |               './presets/commonmark': 13, | |||
|  |               './presets/default': 14, | |||
|  |               './presets/zero': 15, | |||
|  |               './renderer': 16, | |||
|  |               'linkify-it': 54, | |||
|  |               mdurl: 59, | |||
|  |               punycode: 52 | |||
|  |             } | |||
|  |           ], | |||
|  |           10: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 this.ruler = new s() | |||
|  |                 for (var e = 0; e < o.length; e++) | |||
|  |                   this.ruler.push(o[e][0], o[e][1], { | |||
|  |                     alt: (o[e][2] || []).slice() | |||
|  |                   }) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('./ruler'), | |||
|  |                 o = [ | |||
|  |                   [ | |||
|  |                     'table', | |||
|  |                     e('./rules_block/table'), | |||
|  |                     ['paragraph', 'reference'] | |||
|  |                   ], | |||
|  |                   ['code', e('./rules_block/code')], | |||
|  |                   [ | |||
|  |                     'fence', | |||
|  |                     e('./rules_block/fence'), | |||
|  |                     ['paragraph', 'reference', 'blockquote', 'list'] | |||
|  |                   ], | |||
|  |                   [ | |||
|  |                     'blockquote', | |||
|  |                     e('./rules_block/blockquote'), | |||
|  |                     ['paragraph', 'reference', 'list'] | |||
|  |                   ], | |||
|  |                   [ | |||
|  |                     'hr', | |||
|  |                     e('./rules_block/hr'), | |||
|  |                     ['paragraph', 'reference', 'blockquote', 'list'] | |||
|  |                   ], | |||
|  |                   [ | |||
|  |                     'list', | |||
|  |                     e('./rules_block/list'), | |||
|  |                     ['paragraph', 'reference', 'blockquote'] | |||
|  |                   ], | |||
|  |                   ['reference', e('./rules_block/reference')], | |||
|  |                   [ | |||
|  |                     'heading', | |||
|  |                     e('./rules_block/heading'), | |||
|  |                     ['paragraph', 'reference', 'blockquote'] | |||
|  |                   ], | |||
|  |                   ['lheading', e('./rules_block/lheading')], | |||
|  |                   [ | |||
|  |                     'html_block', | |||
|  |                     e('./rules_block/html_block'), | |||
|  |                     ['paragraph', 'reference', 'blockquote'] | |||
|  |                   ], | |||
|  |                   ['paragraph', e('./rules_block/paragraph')] | |||
|  |                 ] | |||
|  |               ;(n.prototype.tokenize = function(e, r, t) { | |||
|  |                 for ( | |||
|  |                   var n, | |||
|  |                     s, | |||
|  |                     o = this.ruler.getRules(''), | |||
|  |                     i = o.length, | |||
|  |                     a = r, | |||
|  |                     c = !1, | |||
|  |                     l = e.md.options.maxNesting; | |||
|  |                   a < t && | |||
|  |                   ((e.line = a = e.skipEmptyLines(a)), !(a >= t)) && | |||
|  |                   !(e.sCount[a] < e.blkIndent); | |||
|  | 
 | |||
|  |                 ) { | |||
|  |                   if (e.level >= l) { | |||
|  |                     e.line = t | |||
|  |                     break | |||
|  |                   } | |||
|  |                   for (s = 0; s < i && !(n = o[s](e, a, t, !1)); s++); | |||
|  |                   if ( | |||
|  |                     ((e.tight = !c), | |||
|  |                     e.isEmpty(e.line - 1) && (c = !0), | |||
|  |                     (a = e.line), | |||
|  |                     a < t && e.isEmpty(a)) | |||
|  |                   ) { | |||
|  |                     if ( | |||
|  |                       ((c = !0), | |||
|  |                       a++, | |||
|  |                       a < t && 'list' === e.parentType && e.isEmpty(a)) | |||
|  |                     ) | |||
|  |                       break | |||
|  |                     e.line = a | |||
|  |                   } | |||
|  |                 } | |||
|  |               }), | |||
|  |                 (n.prototype.parse = function(e, r, t, n) { | |||
|  |                   var s | |||
|  |                   e && | |||
|  |                     ((s = new this.State(e, r, t, n)), | |||
|  |                     this.tokenize(s, s.line, s.lineMax)) | |||
|  |                 }), | |||
|  |                 (n.prototype.State = e('./rules_block/state_block')), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { | |||
|  |               './ruler': 17, | |||
|  |               './rules_block/blockquote': 18, | |||
|  |               './rules_block/code': 19, | |||
|  |               './rules_block/fence': 20, | |||
|  |               './rules_block/heading': 21, | |||
|  |               './rules_block/hr': 22, | |||
|  |               './rules_block/html_block': 23, | |||
|  |               './rules_block/lheading': 24, | |||
|  |               './rules_block/list': 25, | |||
|  |               './rules_block/paragraph': 26, | |||
|  |               './rules_block/reference': 27, | |||
|  |               './rules_block/state_block': 28, | |||
|  |               './rules_block/table': 29 | |||
|  |             } | |||
|  |           ], | |||
|  |           11: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 this.ruler = new s() | |||
|  |                 for (var e = 0; e < o.length; e++) | |||
|  |                   this.ruler.push(o[e][0], o[e][1]) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('./ruler'), | |||
|  |                 o = [ | |||
|  |                   ['normalize', e('./rules_core/normalize')], | |||
|  |                   ['block', e('./rules_core/block')], | |||
|  |                   ['inline', e('./rules_core/inline')], | |||
|  |                   ['linkify', e('./rules_core/linkify')], | |||
|  |                   ['replacements', e('./rules_core/replacements')], | |||
|  |                   ['smartquotes', e('./rules_core/smartquotes')] | |||
|  |                 ] | |||
|  |               ;(n.prototype.process = function(e) { | |||
|  |                 var r, t, n | |||
|  |                 for ( | |||
|  |                   n = this.ruler.getRules(''), r = 0, t = n.length; | |||
|  |                   r < t; | |||
|  |                   r++ | |||
|  |                 ) | |||
|  |                   n[r](e) | |||
|  |               }), | |||
|  |                 (n.prototype.State = e('./rules_core/state_core')), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { | |||
|  |               './ruler': 17, | |||
|  |               './rules_core/block': 30, | |||
|  |               './rules_core/inline': 31, | |||
|  |               './rules_core/linkify': 32, | |||
|  |               './rules_core/normalize': 33, | |||
|  |               './rules_core/replacements': 34, | |||
|  |               './rules_core/smartquotes': 35, | |||
|  |               './rules_core/state_core': 36 | |||
|  |             } | |||
|  |           ], | |||
|  |           12: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 var e | |||
|  |                 for (this.ruler = new s(), e = 0; e < o.length; e++) | |||
|  |                   this.ruler.push(o[e][0], o[e][1]) | |||
|  |                 for (this.ruler2 = new s(), e = 0; e < i.length; e++) | |||
|  |                   this.ruler2.push(i[e][0], i[e][1]) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('./ruler'), | |||
|  |                 o = [ | |||
|  |                   ['text', e('./rules_inline/text')], | |||
|  |                   ['newline', e('./rules_inline/newline')], | |||
|  |                   ['escape', e('./rules_inline/escape')], | |||
|  |                   ['backticks', e('./rules_inline/backticks')], | |||
|  |                   ['strikethrough', e('./rules_inline/strikethrough').tokenize], | |||
|  |                   ['emphasis', e('./rules_inline/emphasis').tokenize], | |||
|  |                   ['link', e('./rules_inline/link')], | |||
|  |                   ['image', e('./rules_inline/image')], | |||
|  |                   ['autolink', e('./rules_inline/autolink')], | |||
|  |                   ['html_inline', e('./rules_inline/html_inline')], | |||
|  |                   ['entity', e('./rules_inline/entity')] | |||
|  |                 ], | |||
|  |                 i = [ | |||
|  |                   ['balance_pairs', e('./rules_inline/balance_pairs')], | |||
|  |                   [ | |||
|  |                     'strikethrough', | |||
|  |                     e('./rules_inline/strikethrough').postProcess | |||
|  |                   ], | |||
|  |                   ['emphasis', e('./rules_inline/emphasis').postProcess], | |||
|  |                   ['text_collapse', e('./rules_inline/text_collapse')] | |||
|  |                 ] | |||
|  |               ;(n.prototype.skipToken = function(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n = e.pos, | |||
|  |                   s = this.ruler.getRules(''), | |||
|  |                   o = s.length, | |||
|  |                   i = e.md.options.maxNesting, | |||
|  |                   a = e.cache | |||
|  |                 if ('undefined' != typeof a[n]) return void (e.pos = a[n]) | |||
|  |                 if (e.level < i) | |||
|  |                   for ( | |||
|  |                     t = 0; | |||
|  |                     t < o && (e.level++, (r = s[t](e, !0)), e.level--, !r); | |||
|  |                     t++ | |||
|  |                   ); | |||
|  |                 else e.pos = e.posMax | |||
|  |                 r || e.pos++, (a[n] = e.pos) | |||
|  |               }), | |||
|  |                 (n.prototype.tokenize = function(e) { | |||
|  |                   for ( | |||
|  |                     var r, | |||
|  |                       t, | |||
|  |                       n = this.ruler.getRules(''), | |||
|  |                       s = n.length, | |||
|  |                       o = e.posMax, | |||
|  |                       i = e.md.options.maxNesting; | |||
|  |                     e.pos < o; | |||
|  | 
 | |||
|  |                   ) { | |||
|  |                     if (e.level < i) | |||
|  |                       for (t = 0; t < s && !(r = n[t](e, !1)); t++); | |||
|  |                     if (r) { | |||
|  |                       if (e.pos >= o) break | |||
|  |                     } else e.pending += e.src[e.pos++] | |||
|  |                   } | |||
|  |                   e.pending && e.pushPending() | |||
|  |                 }), | |||
|  |                 (n.prototype.parse = function(e, r, t, n) { | |||
|  |                   var s, | |||
|  |                     o, | |||
|  |                     i, | |||
|  |                     a = new this.State(e, r, t, n) | |||
|  |                   for ( | |||
|  |                     this.tokenize(a), | |||
|  |                       o = this.ruler2.getRules(''), | |||
|  |                       i = o.length, | |||
|  |                       s = 0; | |||
|  |                     s < i; | |||
|  |                     s++ | |||
|  |                   ) | |||
|  |                     o[s](a) | |||
|  |                 }), | |||
|  |                 (n.prototype.State = e('./rules_inline/state_inline')), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { | |||
|  |               './ruler': 17, | |||
|  |               './rules_inline/autolink': 37, | |||
|  |               './rules_inline/backticks': 38, | |||
|  |               './rules_inline/balance_pairs': 39, | |||
|  |               './rules_inline/emphasis': 40, | |||
|  |               './rules_inline/entity': 41, | |||
|  |               './rules_inline/escape': 42, | |||
|  |               './rules_inline/html_inline': 43, | |||
|  |               './rules_inline/image': 44, | |||
|  |               './rules_inline/link': 45, | |||
|  |               './rules_inline/newline': 46, | |||
|  |               './rules_inline/state_inline': 47, | |||
|  |               './rules_inline/strikethrough': 48, | |||
|  |               './rules_inline/text': 49, | |||
|  |               './rules_inline/text_collapse': 50 | |||
|  |             } | |||
|  |           ], | |||
|  |           13: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = { | |||
|  |                 options: { | |||
|  |                   html: !0, | |||
|  |                   xhtmlOut: !0, | |||
|  |                   breaks: !1, | |||
|  |                   langPrefix: 'language-', | |||
|  |                   linkify: !1, | |||
|  |                   typographer: !1, | |||
|  |                   quotes: '“”‘’', | |||
|  |                   highlight: null, | |||
|  |                   maxNesting: 20 | |||
|  |                 }, | |||
|  |                 components: { | |||
|  |                   core: { rules: ['normalize', 'block', 'inline'] }, | |||
|  |                   block: { | |||
|  |                     rules: [ | |||
|  |                       'blockquote', | |||
|  |                       'code', | |||
|  |                       'fence', | |||
|  |                       'heading', | |||
|  |                       'hr', | |||
|  |                       'html_block', | |||
|  |                       'lheading', | |||
|  |                       'list', | |||
|  |                       'reference', | |||
|  |                       'paragraph' | |||
|  |                     ] | |||
|  |                   }, | |||
|  |                   inline: { | |||
|  |                     rules: [ | |||
|  |                       'autolink', | |||
|  |                       'backticks', | |||
|  |                       'emphasis', | |||
|  |                       'entity', | |||
|  |                       'escape', | |||
|  |                       'html_inline', | |||
|  |                       'image', | |||
|  |                       'link', | |||
|  |                       'newline', | |||
|  |                       'text' | |||
|  |                     ], | |||
|  |                     rules2: ['balance_pairs', 'emphasis', 'text_collapse'] | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           14: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = { | |||
|  |                 options: { | |||
|  |                   html: !1, | |||
|  |                   xhtmlOut: !1, | |||
|  |                   breaks: !1, | |||
|  |                   langPrefix: 'language-', | |||
|  |                   linkify: !1, | |||
|  |                   typographer: !1, | |||
|  |                   quotes: '“”‘’', | |||
|  |                   highlight: null, | |||
|  |                   maxNesting: 100 | |||
|  |                 }, | |||
|  |                 components: { core: {}, block: {}, inline: {} } | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           15: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = { | |||
|  |                 options: { | |||
|  |                   html: !1, | |||
|  |                   xhtmlOut: !1, | |||
|  |                   breaks: !1, | |||
|  |                   langPrefix: 'language-', | |||
|  |                   linkify: !1, | |||
|  |                   typographer: !1, | |||
|  |                   quotes: '“”‘’', | |||
|  |                   highlight: null, | |||
|  |                   maxNesting: 20 | |||
|  |                 }, | |||
|  |                 components: { | |||
|  |                   core: { rules: ['normalize', 'block', 'inline'] }, | |||
|  |                   block: { rules: ['paragraph'] }, | |||
|  |                   inline: { | |||
|  |                     rules: ['text'], | |||
|  |                     rules2: ['balance_pairs', 'text_collapse'] | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           16: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 this.rules = s({}, a) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('./common/utils').assign, | |||
|  |                 o = e('./common/utils').unescapeAll, | |||
|  |                 i = e('./common/utils').escapeHtml, | |||
|  |                 a = {} | |||
|  |               ;(a.code_inline = function(e, r, t, n, s) { | |||
|  |                 var o = e[r], | |||
|  |                   a = s.renderAttrs(o) | |||
|  |                 return ( | |||
|  |                   '<code' + | |||
|  |                   (a ? ' ' + a : '') + | |||
|  |                   '>' + | |||
|  |                   i(e[r].content) + | |||
|  |                   '</code>' | |||
|  |                 ) | |||
|  |               }), | |||
|  |                 (a.code_block = function(e, r, t, n, s) { | |||
|  |                   var o = e[r], | |||
|  |                     a = s.renderAttrs(o) | |||
|  |                   return ( | |||
|  |                     '<pre' + | |||
|  |                     (a ? ' ' + a : '') + | |||
|  |                     '><code>' + | |||
|  |                     i(e[r].content) + | |||
|  |                     '</code></pre>\n' | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (a.fence = function(e, r, t, n, s) { | |||
|  |                   var a, | |||
|  |                     c, | |||
|  |                     l, | |||
|  |                     u, | |||
|  |                     p = e[r], | |||
|  |                     h = p.info ? o(p.info).trim() : '', | |||
|  |                     f = '' | |||
|  |                   return ( | |||
|  |                     h && (f = h.split(/\s+/g)[0]), | |||
|  |                     (a = t.highlight | |||
|  |                       ? t.highlight(p.content, f) || i(p.content) | |||
|  |                       : i(p.content)), | |||
|  |                     0 === a.indexOf('<pre') | |||
|  |                       ? a + '\n' | |||
|  |                       : h | |||
|  |                       ? ((c = p.attrIndex('class')), | |||
|  |                         (l = p.attrs ? p.attrs.slice() : []), | |||
|  |                         c < 0 | |||
|  |                           ? l.push(['class', t.langPrefix + f]) | |||
|  |                           : (l[c] += ' ' + t.langPrefix + f), | |||
|  |                         (u = { attrs: l }), | |||
|  |                         '<pre><code' + | |||
|  |                           s.renderAttrs(u) + | |||
|  |                           '>' + | |||
|  |                           a + | |||
|  |                           '</code></pre>\n') | |||
|  |                       : '<pre><code' + | |||
|  |                         s.renderAttrs(p) + | |||
|  |                         '>' + | |||
|  |                         a + | |||
|  |                         '</code></pre>\n' | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (a.image = function(e, r, t, n, s) { | |||
|  |                   var o = e[r] | |||
|  |                   return ( | |||
|  |                     (o.attrs[o.attrIndex('alt')][1] = s.renderInlineAsText( | |||
|  |                       o.children, | |||
|  |                       t, | |||
|  |                       n | |||
|  |                     )), | |||
|  |                     s.renderToken(e, r, t) | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (a.hardbreak = function(e, r, t) { | |||
|  |                   return t.xhtmlOut ? '<br />\n' : '<br>\n' | |||
|  |                 }), | |||
|  |                 (a.softbreak = function(e, r, t) { | |||
|  |                   return t.breaks ? (t.xhtmlOut ? '<br />\n' : '<br>\n') : '\n' | |||
|  |                 }), | |||
|  |                 (a.text = function(e, r) { | |||
|  |                   return i(e[r].content) | |||
|  |                 }), | |||
|  |                 (a.html_block = function(e, r) { | |||
|  |                   return e[r].content | |||
|  |                 }), | |||
|  |                 (a.html_inline = function(e, r) { | |||
|  |                   return e[r].content | |||
|  |                 }), | |||
|  |                 (n.prototype.renderAttrs = function(e) { | |||
|  |                   var r, t, n | |||
|  |                   if (!e.attrs) return '' | |||
|  |                   for (n = '', r = 0, t = e.attrs.length; r < t; r++) | |||
|  |                     n += ' ' + i(e.attrs[r][0]) + '="' + i(e.attrs[r][1]) + '"' | |||
|  |                   return n | |||
|  |                 }), | |||
|  |                 (n.prototype.renderToken = function(e, r, t) { | |||
|  |                   var n, | |||
|  |                     s = '', | |||
|  |                     o = !1, | |||
|  |                     i = e[r] | |||
|  |                   return i.hidden | |||
|  |                     ? '' | |||
|  |                     : (i.block && | |||
|  |                         i.nesting !== -1 && | |||
|  |                         r && | |||
|  |                         e[r - 1].hidden && | |||
|  |                         (s += '\n'), | |||
|  |                       (s += (i.nesting === -1 ? '</' : '<') + i.tag), | |||
|  |                       (s += this.renderAttrs(i)), | |||
|  |                       0 === i.nesting && t.xhtmlOut && (s += ' /'), | |||
|  |                       i.block && | |||
|  |                         ((o = !0), | |||
|  |                         1 === i.nesting && | |||
|  |                           r + 1 < e.length && | |||
|  |                           ((n = e[r + 1]), | |||
|  |                           'inline' === n.type || n.hidden | |||
|  |                             ? (o = !1) | |||
|  |                             : n.nesting === -1 && n.tag === i.tag && (o = !1))), | |||
|  |                       (s += o ? '>\n' : '>')) | |||
|  |                 }), | |||
|  |                 (n.prototype.renderInline = function(e, r, t) { | |||
|  |                   for ( | |||
|  |                     var n, s = '', o = this.rules, i = 0, a = e.length; | |||
|  |                     i < a; | |||
|  |                     i++ | |||
|  |                   ) | |||
|  |                     (n = e[i].type), | |||
|  |                       (s += | |||
|  |                         'undefined' != typeof o[n] | |||
|  |                           ? o[n](e, i, r, t, this) | |||
|  |                           : this.renderToken(e, i, r)) | |||
|  |                   return s | |||
|  |                 }), | |||
|  |                 (n.prototype.renderInlineAsText = function(e, r, t) { | |||
|  |                   for (var n = '', s = 0, o = e.length; s < o; s++) | |||
|  |                     'text' === e[s].type | |||
|  |                       ? (n += e[s].content) | |||
|  |                       : 'image' === e[s].type && | |||
|  |                         (n += this.renderInlineAsText(e[s].children, r, t)) | |||
|  |                   return n | |||
|  |                 }), | |||
|  |                 (n.prototype.render = function(e, r, t) { | |||
|  |                   var n, | |||
|  |                     s, | |||
|  |                     o, | |||
|  |                     i = '', | |||
|  |                     a = this.rules | |||
|  |                   for (n = 0, s = e.length; n < s; n++) | |||
|  |                     (o = e[n].type), | |||
|  |                       (i += | |||
|  |                         'inline' === o | |||
|  |                           ? this.renderInline(e[n].children, r, t) | |||
|  |                           : 'undefined' != typeof a[o] | |||
|  |                           ? a[e[n].type](e, n, r, t, this) | |||
|  |                           : this.renderToken(e, n, r, t)) | |||
|  |                   return i | |||
|  |                 }), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { './common/utils': 4 } | |||
|  |           ], | |||
|  |           17: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 ;(this.__rules__ = []), (this.__cache__ = null) | |||
|  |               } | |||
|  | 
 | |||
|  |               ;(n.prototype.__find__ = function(e) { | |||
|  |                 for (var r = 0; r < this.__rules__.length; r++) | |||
|  |                   if (this.__rules__[r].name === e) return r | |||
|  |                 return -1 | |||
|  |               }), | |||
|  |                 (n.prototype.__compile__ = function() { | |||
|  |                   var e = this, | |||
|  |                     r = [''] | |||
|  |                   e.__rules__.forEach(function(e) { | |||
|  |                     e.enabled && | |||
|  |                       e.alt.forEach(function(e) { | |||
|  |                         r.indexOf(e) < 0 && r.push(e) | |||
|  |                       }) | |||
|  |                   }), | |||
|  |                     (e.__cache__ = {}), | |||
|  |                     r.forEach(function(r) { | |||
|  |                       ;(e.__cache__[r] = []), | |||
|  |                         e.__rules__.forEach(function(t) { | |||
|  |                           t.enabled && | |||
|  |                             ((r && t.alt.indexOf(r) < 0) || | |||
|  |                               e.__cache__[r].push(t.fn)) | |||
|  |                         }) | |||
|  |                     }) | |||
|  |                 }), | |||
|  |                 (n.prototype.at = function(e, r, t) { | |||
|  |                   var n = this.__find__(e), | |||
|  |                     s = t || {} | |||
|  |                   if (n === -1) throw new Error('Parser rule not found: ' + e) | |||
|  |                   ;(this.__rules__[n].fn = r), | |||
|  |                     (this.__rules__[n].alt = s.alt || []), | |||
|  |                     (this.__cache__ = null) | |||
|  |                 }), | |||
|  |                 (n.prototype.before = function(e, r, t, n) { | |||
|  |                   var s = this.__find__(e), | |||
|  |                     o = n || {} | |||
|  |                   if (s === -1) throw new Error('Parser rule not found: ' + e) | |||
|  |                   this.__rules__.splice(s, 0, { | |||
|  |                     name: r, | |||
|  |                     enabled: !0, | |||
|  |                     fn: t, | |||
|  |                     alt: o.alt || [] | |||
|  |                   }), | |||
|  |                     (this.__cache__ = null) | |||
|  |                 }), | |||
|  |                 (n.prototype.after = function(e, r, t, n) { | |||
|  |                   var s = this.__find__(e), | |||
|  |                     o = n || {} | |||
|  |                   if (s === -1) throw new Error('Parser rule not found: ' + e) | |||
|  |                   this.__rules__.splice(s + 1, 0, { | |||
|  |                     name: r, | |||
|  |                     enabled: !0, | |||
|  |                     fn: t, | |||
|  |                     alt: o.alt || [] | |||
|  |                   }), | |||
|  |                     (this.__cache__ = null) | |||
|  |                 }), | |||
|  |                 (n.prototype.push = function(e, r, t) { | |||
|  |                   var n = t || {} | |||
|  |                   this.__rules__.push({ | |||
|  |                     name: e, | |||
|  |                     enabled: !0, | |||
|  |                     fn: r, | |||
|  |                     alt: n.alt || [] | |||
|  |                   }), | |||
|  |                     (this.__cache__ = null) | |||
|  |                 }), | |||
|  |                 (n.prototype.enable = function(e, r) { | |||
|  |                   Array.isArray(e) || (e = [e]) | |||
|  |                   var t = [] | |||
|  |                   return ( | |||
|  |                     e.forEach(function(e) { | |||
|  |                       var n = this.__find__(e) | |||
|  |                       if (n < 0) { | |||
|  |                         if (r) return | |||
|  |                         throw new Error('Rules manager: invalid rule name ' + e) | |||
|  |                       } | |||
|  |                       ;(this.__rules__[n].enabled = !0), t.push(e) | |||
|  |                     }, this), | |||
|  |                     (this.__cache__ = null), | |||
|  |                     t | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (n.prototype.enableOnly = function(e, r) { | |||
|  |                   Array.isArray(e) || (e = [e]), | |||
|  |                     this.__rules__.forEach(function(e) { | |||
|  |                       e.enabled = !1 | |||
|  |                     }), | |||
|  |                     this.enable(e, r) | |||
|  |                 }), | |||
|  |                 (n.prototype.disable = function(e, r) { | |||
|  |                   Array.isArray(e) || (e = [e]) | |||
|  |                   var t = [] | |||
|  |                   return ( | |||
|  |                     e.forEach(function(e) { | |||
|  |                       var n = this.__find__(e) | |||
|  |                       if (n < 0) { | |||
|  |                         if (r) return | |||
|  |                         throw new Error('Rules manager: invalid rule name ' + e) | |||
|  |                       } | |||
|  |                       ;(this.__rules__[n].enabled = !1), t.push(e) | |||
|  |                     }, this), | |||
|  |                     (this.__cache__ = null), | |||
|  |                     t | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (n.prototype.getRules = function(e) { | |||
|  |                   return ( | |||
|  |                     null === this.__cache__ && this.__compile__(), | |||
|  |                     this.__cache__[e] || [] | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           18: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r, t, s) { | |||
|  |                 var o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v, | |||
|  |                   x = e.bMarks[r] + e.tShift[r], | |||
|  |                   y = e.eMarks[r] | |||
|  |                 if (62 !== e.src.charCodeAt(x++)) return !1 | |||
|  |                 if (s) return !0 | |||
|  |                 for ( | |||
|  |                   32 === e.src.charCodeAt(x) && x++, | |||
|  |                     u = e.blkIndent, | |||
|  |                     e.blkIndent = 0, | |||
|  |                     f = d = e.sCount[r] + x - (e.bMarks[r] + e.tShift[r]), | |||
|  |                     l = [e.bMarks[r]], | |||
|  |                     e.bMarks[r] = x; | |||
|  |                   x < y && ((m = e.src.charCodeAt(x)), n(m)); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   9 === m ? (d += 4 - (d % 4)) : d++, x++ | |||
|  |                 for ( | |||
|  |                   i = x >= y, | |||
|  |                     c = [e.sCount[r]], | |||
|  |                     e.sCount[r] = d - f, | |||
|  |                     a = [e.tShift[r]], | |||
|  |                     e.tShift[r] = x - e.bMarks[r], | |||
|  |                     _ = e.md.block.ruler.getRules('blockquote'), | |||
|  |                     o = r + 1; | |||
|  |                   o < t && | |||
|  |                   !(e.sCount[o] < u) && | |||
|  |                   ((x = e.bMarks[o] + e.tShift[o]), | |||
|  |                   (y = e.eMarks[o]), | |||
|  |                   !(x >= y)); | |||
|  |                   o++ | |||
|  |                 ) | |||
|  |                   if (62 !== e.src.charCodeAt(x++)) { | |||
|  |                     if (i) break | |||
|  |                     for (v = !1, k = 0, b = _.length; k < b; k++) | |||
|  |                       if (_[k](e, o, t, !0)) { | |||
|  |                         v = !0 | |||
|  |                         break | |||
|  |                       } | |||
|  |                     if (v) break | |||
|  |                     l.push(e.bMarks[o]), | |||
|  |                       a.push(e.tShift[o]), | |||
|  |                       c.push(e.sCount[o]), | |||
|  |                       (e.sCount[o] = -1) | |||
|  |                   } else { | |||
|  |                     for ( | |||
|  |                       32 === e.src.charCodeAt(x) && x++, | |||
|  |                         f = d = e.sCount[o] + x - (e.bMarks[o] + e.tShift[o]), | |||
|  |                         l.push(e.bMarks[o]), | |||
|  |                         e.bMarks[o] = x; | |||
|  |                       x < y && ((m = e.src.charCodeAt(x)), n(m)); | |||
|  | 
 | |||
|  |                     ) | |||
|  |                       9 === m ? (d += 4 - (d % 4)) : d++, x++ | |||
|  |                     ;(i = x >= y), | |||
|  |                       c.push(e.sCount[o]), | |||
|  |                       (e.sCount[o] = d - f), | |||
|  |                       a.push(e.tShift[o]), | |||
|  |                       (e.tShift[o] = x - e.bMarks[o]) | |||
|  |                   } | |||
|  |                 for ( | |||
|  |                   p = e.parentType, | |||
|  |                     e.parentType = 'blockquote', | |||
|  |                     g = e.push('blockquote_open', 'blockquote', 1), | |||
|  |                     g.markup = '>', | |||
|  |                     g.map = h = [r, 0], | |||
|  |                     e.md.block.tokenize(e, r, o), | |||
|  |                     g = e.push('blockquote_close', 'blockquote', -1), | |||
|  |                     g.markup = '>', | |||
|  |                     e.parentType = p, | |||
|  |                     h[1] = e.line, | |||
|  |                     k = 0; | |||
|  |                   k < a.length; | |||
|  |                   k++ | |||
|  |                 ) | |||
|  |                   (e.bMarks[k + r] = l[k]), | |||
|  |                     (e.tShift[k + r] = a[k]), | |||
|  |                     (e.sCount[k + r] = c[k]) | |||
|  |                 return (e.blkIndent = u), !0 | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           19: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r, t) { | |||
|  |                 var n, | |||
|  |                   s, | |||
|  |                   o, | |||
|  |                   i = 0 | |||
|  |                 if (e.sCount[r] - e.blkIndent < 4) return !1 | |||
|  |                 for (s = n = r + 1; n < t; ) | |||
|  |                   if (e.isEmpty(n)) { | |||
|  |                     if ((i++, i >= 2 && 'list' === e.parentType)) break | |||
|  |                     n++ | |||
|  |                   } else { | |||
|  |                     if (((i = 0), !(e.sCount[n] - e.blkIndent >= 4))) break | |||
|  |                     n++, (s = n) | |||
|  |                   } | |||
|  |                 return ( | |||
|  |                   (e.line = s), | |||
|  |                   (o = e.push('code_block', 'code', 0)), | |||
|  |                   (o.content = e.getLines(r, s, 4 + e.blkIndent, !0)), | |||
|  |                   (o.map = [r, e.line]), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           20: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r, t, n) { | |||
|  |                 var s, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p = !1, | |||
|  |                   h = e.bMarks[r] + e.tShift[r], | |||
|  |                   f = e.eMarks[r] | |||
|  |                 if (h + 3 > f) return !1 | |||
|  |                 if (((s = e.src.charCodeAt(h)), 126 !== s && 96 !== s)) | |||
|  |                   return !1 | |||
|  |                 if (((c = h), (h = e.skipChars(h, s)), (o = h - c), o < 3)) | |||
|  |                   return !1 | |||
|  |                 if ( | |||
|  |                   ((u = e.src.slice(c, h)), | |||
|  |                   (i = e.src.slice(h, f)), | |||
|  |                   i.indexOf('`') >= 0) | |||
|  |                 ) | |||
|  |                   return !1 | |||
|  |                 if (n) return !0 | |||
|  |                 for ( | |||
|  |                   a = r; | |||
|  |                   (a++, !(a >= t)) && | |||
|  |                   ((h = c = e.bMarks[a] + e.tShift[a]), | |||
|  |                   (f = e.eMarks[a]), | |||
|  |                   !(h < f && e.sCount[a] < e.blkIndent)); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   if ( | |||
|  |                     e.src.charCodeAt(h) === s && | |||
|  |                     !( | |||
|  |                       e.sCount[a] - e.blkIndent >= 4 || | |||
|  |                       ((h = e.skipChars(h, s)), | |||
|  |                       h - c < o || ((h = e.skipSpaces(h)), h < f)) | |||
|  |                     ) | |||
|  |                   ) { | |||
|  |                     p = !0 | |||
|  |                     break | |||
|  |                   } | |||
|  |                 return ( | |||
|  |                   (o = e.sCount[r]), | |||
|  |                   (e.line = a + (p ? 1 : 0)), | |||
|  |                   (l = e.push('fence', 'code', 0)), | |||
|  |                   (l.info = i), | |||
|  |                   (l.content = e.getLines(r + 1, a, o, !0)), | |||
|  |                   (l.markup = u), | |||
|  |                   (l.map = [r, e.line]), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           21: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r, t, s) { | |||
|  |                 var o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l = e.bMarks[r] + e.tShift[r], | |||
|  |                   u = e.eMarks[r] | |||
|  |                 if (((o = e.src.charCodeAt(l)), 35 !== o || l >= u)) return !1 | |||
|  |                 for ( | |||
|  |                   i = 1, o = e.src.charCodeAt(++l); | |||
|  |                   35 === o && l < u && i <= 6; | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   i++, (o = e.src.charCodeAt(++l)) | |||
|  |                 return ( | |||
|  |                   !(i > 6 || (l < u && 32 !== o)) && | |||
|  |                   (!!s || | |||
|  |                     ((u = e.skipSpacesBack(u, l)), | |||
|  |                     (a = e.skipCharsBack(u, 35, l)), | |||
|  |                     a > l && n(e.src.charCodeAt(a - 1)) && (u = a), | |||
|  |                     (e.line = r + 1), | |||
|  |                     (c = e.push('heading_open', 'h' + String(i), 1)), | |||
|  |                     (c.markup = '########'.slice(0, i)), | |||
|  |                     (c.map = [r, e.line]), | |||
|  |                     (c = e.push('inline', '', 0)), | |||
|  |                     (c.content = e.src.slice(l, u).trim()), | |||
|  |                     (c.map = [r, e.line]), | |||
|  |                     (c.children = []), | |||
|  |                     (c = e.push('heading_close', 'h' + String(i), -1)), | |||
|  |                     (c.markup = '########'.slice(0, i)), | |||
|  |                     !0)) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           22: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r, t, s) { | |||
|  |                 var o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l = e.bMarks[r] + e.tShift[r], | |||
|  |                   u = e.eMarks[r] | |||
|  |                 if ( | |||
|  |                   ((o = e.src.charCodeAt(l++)), | |||
|  |                   42 !== o && 45 !== o && 95 !== o) | |||
|  |                 ) | |||
|  |                   return !1 | |||
|  |                 for (i = 1; l < u; ) { | |||
|  |                   if (((a = e.src.charCodeAt(l++)), a !== o && !n(a))) return !1 | |||
|  |                   a === o && i++ | |||
|  |                 } | |||
|  |                 return ( | |||
|  |                   !(i < 3) && | |||
|  |                   (!!s || | |||
|  |                     ((e.line = r + 1), | |||
|  |                     (c = e.push('hr', 'hr', 0)), | |||
|  |                     (c.map = [r, e.line]), | |||
|  |                     (c.markup = Array(i + 1).join(String.fromCharCode(o))), | |||
|  |                     !0)) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           23: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/html_blocks'), | |||
|  |                 s = e('../common/html_re').HTML_OPEN_CLOSE_TAG_RE, | |||
|  |                 o = [ | |||
|  |                   [ | |||
|  |                     /^<(script|pre|style)(?=(\s|>|$))/i, | |||
|  |                     /<\/(script|pre|style)>/i, | |||
|  |                     !0 | |||
|  |                   ], | |||
|  |                   [/^<!--/, /-->/, !0], | |||
|  |                   [/^<\?/, /\?>/, !0], | |||
|  |                   [/^<![A-Z]/, />/, !0], | |||
|  |                   [/^<!\[CDATA\[/, /\]\]>/, !0], | |||
|  |                   [ | |||
|  |                     new RegExp('^</?(' + n.join('|') + ')(?=(\\s|/?>|$))', 'i'), | |||
|  |                     /^$/, | |||
|  |                     !0 | |||
|  |                   ], | |||
|  |                   [new RegExp(s.source + '\\s*$'), /^$/, !1] | |||
|  |                 ] | |||
|  |               r.exports = function(e, r, t, n) { | |||
|  |                 var s, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l = e.bMarks[r] + e.tShift[r], | |||
|  |                   u = e.eMarks[r] | |||
|  |                 if (!e.md.options.html) return !1 | |||
|  |                 if (60 !== e.src.charCodeAt(l)) return !1 | |||
|  |                 for ( | |||
|  |                   c = e.src.slice(l, u), s = 0; | |||
|  |                   s < o.length && !o[s][0].test(c); | |||
|  |                   s++ | |||
|  |                 ); | |||
|  |                 if (s === o.length) return !1 | |||
|  |                 if (n) return o[s][2] | |||
|  |                 if (((i = r + 1), !o[s][1].test(c))) | |||
|  |                   for (; i < t && !(e.sCount[i] < e.blkIndent); i++) | |||
|  |                     if ( | |||
|  |                       ((l = e.bMarks[i] + e.tShift[i]), | |||
|  |                       (u = e.eMarks[i]), | |||
|  |                       (c = e.src.slice(l, u)), | |||
|  |                       o[s][1].test(c)) | |||
|  |                     ) { | |||
|  |                       0 !== c.length && i++ | |||
|  |                       break | |||
|  |                     } | |||
|  |                 return ( | |||
|  |                   (e.line = i), | |||
|  |                   (a = e.push('html_block', '', 0)), | |||
|  |                   (a.map = [r, i]), | |||
|  |                   (a.content = e.getLines(r, i, e.blkIndent, !0)), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/html_blocks': 2, '../common/html_re': 3 } | |||
|  |           ], | |||
|  |           24: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r, t) { | |||
|  |                 for ( | |||
|  |                   var n, | |||
|  |                     s, | |||
|  |                     o, | |||
|  |                     i, | |||
|  |                     a, | |||
|  |                     c, | |||
|  |                     l, | |||
|  |                     u, | |||
|  |                     p, | |||
|  |                     h = r + 1, | |||
|  |                     f = e.md.block.ruler.getRules('paragraph'); | |||
|  |                   h < t && !e.isEmpty(h); | |||
|  |                   h++ | |||
|  |                 ) | |||
|  |                   if (!(e.sCount[h] - e.blkIndent > 3)) { | |||
|  |                     if ( | |||
|  |                       e.sCount[h] >= e.blkIndent && | |||
|  |                       ((c = e.bMarks[h] + e.tShift[h]), | |||
|  |                       (l = e.eMarks[h]), | |||
|  |                       c < l && | |||
|  |                         ((p = e.src.charCodeAt(c)), | |||
|  |                         (45 === p || 61 === p) && | |||
|  |                           ((c = e.skipChars(c, p)), | |||
|  |                           (c = e.skipSpaces(c)), | |||
|  |                           c >= l))) | |||
|  |                     ) { | |||
|  |                       u = 61 === p ? 1 : 2 | |||
|  |                       break | |||
|  |                     } | |||
|  |                     if (!(e.sCount[h] < 0)) { | |||
|  |                       for (s = !1, o = 0, i = f.length; o < i; o++) | |||
|  |                         if (f[o](e, h, t, !0)) { | |||
|  |                           s = !0 | |||
|  |                           break | |||
|  |                         } | |||
|  |                       if (s) break | |||
|  |                     } | |||
|  |                   } | |||
|  |                 return ( | |||
|  |                   !!u && | |||
|  |                   ((n = e.getLines(r, h, e.blkIndent, !1).trim()), | |||
|  |                   (e.line = h + 1), | |||
|  |                   (a = e.push('heading_open', 'h' + String(u), 1)), | |||
|  |                   (a.markup = String.fromCharCode(p)), | |||
|  |                   (a.map = [r, e.line]), | |||
|  |                   (a = e.push('inline', '', 0)), | |||
|  |                   (a.content = n), | |||
|  |                   (a.map = [r, e.line - 1]), | |||
|  |                   (a.children = []), | |||
|  |                   (a = e.push('heading_close', 'h' + String(u), -1)), | |||
|  |                   (a.markup = String.fromCharCode(p)), | |||
|  |                   !0) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           25: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r) { | |||
|  |                 var t, n, s, o | |||
|  |                 return ( | |||
|  |                   (n = e.bMarks[r] + e.tShift[r]), | |||
|  |                   (s = e.eMarks[r]), | |||
|  |                   (t = e.src.charCodeAt(n++)), | |||
|  |                   42 !== t && 45 !== t && 43 !== t | |||
|  |                     ? -1 | |||
|  |                     : n < s && ((o = e.src.charCodeAt(n)), !i(o)) | |||
|  |                     ? -1 | |||
|  |                     : n | |||
|  |                 ) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e, r) { | |||
|  |                 var t, | |||
|  |                   n = e.bMarks[r] + e.tShift[r], | |||
|  |                   s = n, | |||
|  |                   o = e.eMarks[r] | |||
|  |                 if (s + 1 >= o) return -1 | |||
|  |                 if (((t = e.src.charCodeAt(s++)), t < 48 || t > 57)) return -1 | |||
|  |                 for (;;) { | |||
|  |                   if (s >= o) return -1 | |||
|  |                   t = e.src.charCodeAt(s++) | |||
|  |                   { | |||
|  |                     if (!(t >= 48 && t <= 57)) { | |||
|  |                       if (41 === t || 46 === t) break | |||
|  |                       return -1 | |||
|  |                     } | |||
|  |                     if (s - n >= 10) return -1 | |||
|  |                   } | |||
|  |                 } | |||
|  |                 return s < o && ((t = e.src.charCodeAt(s)), !i(t)) ? -1 : s | |||
|  |               } | |||
|  | 
 | |||
|  |               function o(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s = e.level + 2 | |||
|  |                 for (t = r + 2, n = e.tokens.length - 2; t < n; t++) | |||
|  |                   e.tokens[t].level === s && | |||
|  |                     'paragraph_open' === e.tokens[t].type && | |||
|  |                     ((e.tokens[t + 2].hidden = !0), | |||
|  |                     (e.tokens[t].hidden = !0), | |||
|  |                     (t += 2)) | |||
|  |               } | |||
|  | 
 | |||
|  |               var i = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r, t, a) { | |||
|  |                 var c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v, | |||
|  |                   x, | |||
|  |                   y, | |||
|  |                   C, | |||
|  |                   A, | |||
|  |                   w, | |||
|  |                   D, | |||
|  |                   q, | |||
|  |                   E, | |||
|  |                   S, | |||
|  |                   F, | |||
|  |                   z, | |||
|  |                   L, | |||
|  |                   T, | |||
|  |                   R, | |||
|  |                   M, | |||
|  |                   I = !0 | |||
|  |                 if ((k = s(e, r)) >= 0) w = !0 | |||
|  |                 else { | |||
|  |                   if (!((k = n(e, r)) >= 0)) return !1 | |||
|  |                   w = !1 | |||
|  |                 } | |||
|  |                 if (((A = e.src.charCodeAt(k - 1)), a)) return !0 | |||
|  |                 for ( | |||
|  |                   q = e.tokens.length, | |||
|  |                     w | |||
|  |                       ? ((g = e.bMarks[r] + e.tShift[r]), | |||
|  |                         (C = Number(e.src.substr(g, k - g - 1))), | |||
|  |                         (L = e.push('ordered_list_open', 'ol', 1)), | |||
|  |                         1 !== C && (L.attrs = [['start', C]])) | |||
|  |                       : (L = e.push('bullet_list_open', 'ul', 1)), | |||
|  |                     L.map = S = [r, 0], | |||
|  |                     L.markup = String.fromCharCode(A), | |||
|  |                     c = r, | |||
|  |                     E = !1, | |||
|  |                     z = e.md.block.ruler.getRules('list'); | |||
|  |                   c < t; | |||
|  | 
 | |||
|  |                 ) { | |||
|  |                   for ( | |||
|  |                     v = k, | |||
|  |                       x = e.eMarks[c], | |||
|  |                       l = u = e.sCount[c] + k - (e.bMarks[r] + e.tShift[r]); | |||
|  |                     v < x && ((b = e.src.charCodeAt(v)), i(b)); | |||
|  | 
 | |||
|  |                   ) | |||
|  |                     9 === b ? (u += 4 - (u % 4)) : u++, v++ | |||
|  |                   if ( | |||
|  |                     ((D = v), | |||
|  |                     (y = D >= x ? 1 : u - l), | |||
|  |                     y > 4 && (y = 1), | |||
|  |                     (p = l + y), | |||
|  |                     (L = e.push('list_item_open', 'li', 1)), | |||
|  |                     (L.markup = String.fromCharCode(A)), | |||
|  |                     (L.map = F = [r, 0]), | |||
|  |                     (f = e.blkIndent), | |||
|  |                     (m = e.tight), | |||
|  |                     (h = e.tShift[r]), | |||
|  |                     (d = e.sCount[r]), | |||
|  |                     (_ = e.parentType), | |||
|  |                     (e.blkIndent = p), | |||
|  |                     (e.tight = !0), | |||
|  |                     (e.parentType = 'list'), | |||
|  |                     (e.tShift[r] = D - e.bMarks[r]), | |||
|  |                     (e.sCount[r] = u), | |||
|  |                     D >= x && e.isEmpty(r + 1) | |||
|  |                       ? (e.line = Math.min(e.line + 2, t)) | |||
|  |                       : e.md.block.tokenize(e, r, t, !0), | |||
|  |                     (e.tight && !E) || (I = !1), | |||
|  |                     (E = e.line - r > 1 && e.isEmpty(e.line - 1)), | |||
|  |                     (e.blkIndent = f), | |||
|  |                     (e.tShift[r] = h), | |||
|  |                     (e.sCount[r] = d), | |||
|  |                     (e.tight = m), | |||
|  |                     (e.parentType = _), | |||
|  |                     (L = e.push('list_item_close', 'li', -1)), | |||
|  |                     (L.markup = String.fromCharCode(A)), | |||
|  |                     (c = r = e.line), | |||
|  |                     (F[1] = c), | |||
|  |                     (D = e.bMarks[r]), | |||
|  |                     c >= t) | |||
|  |                   ) | |||
|  |                     break | |||
|  |                   if (e.isEmpty(c)) break | |||
|  |                   if (e.sCount[c] < e.blkIndent) break | |||
|  |                   for (M = !1, T = 0, R = z.length; T < R; T++) | |||
|  |                     if (z[T](e, c, t, !0)) { | |||
|  |                       M = !0 | |||
|  |                       break | |||
|  |                     } | |||
|  |                   if (M) break | |||
|  |                   if (w) { | |||
|  |                     if (((k = s(e, c)), k < 0)) break | |||
|  |                   } else if (((k = n(e, c)), k < 0)) break | |||
|  |                   if (A !== e.src.charCodeAt(k - 1)) break | |||
|  |                 } | |||
|  |                 return ( | |||
|  |                   (L = w | |||
|  |                     ? e.push('ordered_list_close', 'ol', -1) | |||
|  |                     : e.push('bullet_list_close', 'ul', -1)), | |||
|  |                   (L.markup = String.fromCharCode(A)), | |||
|  |                   (S[1] = c), | |||
|  |                   (e.line = c), | |||
|  |                   I && o(e, q), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           26: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r) { | |||
|  |                 for ( | |||
|  |                   var t, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     o, | |||
|  |                     i, | |||
|  |                     a = r + 1, | |||
|  |                     c = e.md.block.ruler.getRules('paragraph'), | |||
|  |                     l = e.lineMax; | |||
|  |                   a < l && !e.isEmpty(a); | |||
|  |                   a++ | |||
|  |                 ) | |||
|  |                   if (!(e.sCount[a] - e.blkIndent > 3 || e.sCount[a] < 0)) { | |||
|  |                     for (n = !1, s = 0, o = c.length; s < o; s++) | |||
|  |                       if (c[s](e, a, l, !0)) { | |||
|  |                         n = !0 | |||
|  |                         break | |||
|  |                       } | |||
|  |                     if (n) break | |||
|  |                   } | |||
|  |                 return ( | |||
|  |                   (t = e.getLines(r, a, e.blkIndent, !1).trim()), | |||
|  |                   (e.line = a), | |||
|  |                   (i = e.push('paragraph_open', 'p', 1)), | |||
|  |                   (i.map = [r, e.line]), | |||
|  |                   (i = e.push('inline', '', 0)), | |||
|  |                   (i.content = t), | |||
|  |                   (i.map = [r, e.line]), | |||
|  |                   (i.children = []), | |||
|  |                   (i = e.push('paragraph_close', 'p', -1)), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           27: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../helpers/parse_link_destination'), | |||
|  |                 s = e('../helpers/parse_link_title'), | |||
|  |                 o = e('../common/utils').normalizeReference, | |||
|  |                 i = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r, t, a) { | |||
|  |                 var c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v, | |||
|  |                   x, | |||
|  |                   y, | |||
|  |                   C = 0, | |||
|  |                   A = e.bMarks[r] + e.tShift[r], | |||
|  |                   w = e.eMarks[r], | |||
|  |                   D = r + 1 | |||
|  |                 if (91 !== e.src.charCodeAt(A)) return !1 | |||
|  |                 for (; ++A < w; ) | |||
|  |                   if ( | |||
|  |                     93 === e.src.charCodeAt(A) && | |||
|  |                     92 !== e.src.charCodeAt(A - 1) | |||
|  |                   ) { | |||
|  |                     if (A + 1 === w) return !1 | |||
|  |                     if (58 !== e.src.charCodeAt(A + 1)) return !1 | |||
|  |                     break | |||
|  |                   } | |||
|  |                 for ( | |||
|  |                   p = e.lineMax, x = e.md.block.ruler.getRules('reference'); | |||
|  |                   D < p && !e.isEmpty(D); | |||
|  |                   D++ | |||
|  |                 ) | |||
|  |                   if (!(e.sCount[D] - e.blkIndent > 3 || e.sCount[D] < 0)) { | |||
|  |                     for (v = !1, f = 0, d = x.length; f < d; f++) | |||
|  |                       if (x[f](e, D, p, !0)) { | |||
|  |                         v = !0 | |||
|  |                         break | |||
|  |                       } | |||
|  |                     if (v) break | |||
|  |                   } | |||
|  |                 for ( | |||
|  |                   b = e.getLines(r, D, e.blkIndent, !1).trim(), | |||
|  |                     w = b.length, | |||
|  |                     A = 1; | |||
|  |                   A < w; | |||
|  |                   A++ | |||
|  |                 ) { | |||
|  |                   if (((c = b.charCodeAt(A)), 91 === c)) return !1 | |||
|  |                   if (93 === c) { | |||
|  |                     _ = A | |||
|  |                     break | |||
|  |                   } | |||
|  |                   10 === c | |||
|  |                     ? C++ | |||
|  |                     : 92 === c && (A++, A < w && 10 === b.charCodeAt(A) && C++) | |||
|  |                 } | |||
|  |                 if (_ < 0 || 58 !== b.charCodeAt(_ + 1)) return !1 | |||
|  |                 for (A = _ + 2; A < w; A++) | |||
|  |                   if (((c = b.charCodeAt(A)), 10 === c)) C++ | |||
|  |                   else if (!i(c)) break | |||
|  |                 if (((g = n(b, A, w)), !g.ok)) return !1 | |||
|  |                 if (((h = e.md.normalizeLink(g.str)), !e.md.validateLink(h))) | |||
|  |                   return !1 | |||
|  |                 for (A = g.pos, C += g.lines, l = A, u = C, k = A; A < w; A++) | |||
|  |                   if (((c = b.charCodeAt(A)), 10 === c)) C++ | |||
|  |                   else if (!i(c)) break | |||
|  |                 for ( | |||
|  |                   g = s(b, A, w), | |||
|  |                     A < w && k !== A && g.ok | |||
|  |                       ? ((y = g.str), (A = g.pos), (C += g.lines)) | |||
|  |                       : ((y = ''), (A = l), (C = u)); | |||
|  |                   A < w && ((c = b.charCodeAt(A)), i(c)); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   A++ | |||
|  |                 if (A < w && 10 !== b.charCodeAt(A) && y) | |||
|  |                   for ( | |||
|  |                     y = '', A = l, C = u; | |||
|  |                     A < w && ((c = b.charCodeAt(A)), i(c)); | |||
|  | 
 | |||
|  |                   ) | |||
|  |                     A++ | |||
|  |                 return ( | |||
|  |                   !(A < w && 10 !== b.charCodeAt(A)) && | |||
|  |                   !!(m = o(b.slice(1, _))) && | |||
|  |                   (!!a || | |||
|  |                     ('undefined' == typeof e.env.references && | |||
|  |                       (e.env.references = {}), | |||
|  |                     'undefined' == typeof e.env.references[m] && | |||
|  |                       (e.env.references[m] = { | |||
|  |                         title: y, | |||
|  |                         href: h | |||
|  |                       }), | |||
|  |                     (e.line = r + C + 1), | |||
|  |                     !0)) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { | |||
|  |               '../common/utils': 4, | |||
|  |               '../helpers/parse_link_destination': 6, | |||
|  |               '../helpers/parse_link_title': 8 | |||
|  |             } | |||
|  |           ], | |||
|  |           28: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r, t, n) { | |||
|  |                 var s, i, a, c, l, u, p, h | |||
|  |                 for ( | |||
|  |                   this.src = e, | |||
|  |                     this.md = r, | |||
|  |                     this.env = t, | |||
|  |                     this.tokens = n, | |||
|  |                     this.bMarks = [], | |||
|  |                     this.eMarks = [], | |||
|  |                     this.tShift = [], | |||
|  |                     this.sCount = [], | |||
|  |                     this.blkIndent = 0, | |||
|  |                     this.line = 0, | |||
|  |                     this.lineMax = 0, | |||
|  |                     this.tight = !1, | |||
|  |                     this.parentType = 'root', | |||
|  |                     this.ddIndent = -1, | |||
|  |                     this.level = 0, | |||
|  |                     this.result = '', | |||
|  |                     i = this.src, | |||
|  |                     h = !1, | |||
|  |                     a = c = u = p = 0, | |||
|  |                     l = i.length; | |||
|  |                   c < l; | |||
|  |                   c++ | |||
|  |                 ) { | |||
|  |                   if (((s = i.charCodeAt(c)), !h)) { | |||
|  |                     if (o(s)) { | |||
|  |                       u++, 9 === s ? (p += 4 - (p % 4)) : p++ | |||
|  |                       continue | |||
|  |                     } | |||
|  |                     h = !0 | |||
|  |                   } | |||
|  |                   ;(10 !== s && c !== l - 1) || | |||
|  |                     (10 !== s && c++, | |||
|  |                     this.bMarks.push(a), | |||
|  |                     this.eMarks.push(c), | |||
|  |                     this.tShift.push(u), | |||
|  |                     this.sCount.push(p), | |||
|  |                     (h = !1), | |||
|  |                     (u = 0), | |||
|  |                     (p = 0), | |||
|  |                     (a = c + 1)) | |||
|  |                 } | |||
|  |                 this.bMarks.push(i.length), | |||
|  |                   this.eMarks.push(i.length), | |||
|  |                   this.tShift.push(0), | |||
|  |                   this.sCount.push(0), | |||
|  |                   (this.lineMax = this.bMarks.length - 1) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('../token'), | |||
|  |                 o = e('../common/utils').isSpace | |||
|  |               ;(n.prototype.push = function(e, r, t) { | |||
|  |                 var n = new s(e, r, t) | |||
|  |                 return ( | |||
|  |                   (n.block = !0), | |||
|  |                   t < 0 && this.level--, | |||
|  |                   (n.level = this.level), | |||
|  |                   t > 0 && this.level++, | |||
|  |                   this.tokens.push(n), | |||
|  |                   n | |||
|  |                 ) | |||
|  |               }), | |||
|  |                 (n.prototype.isEmpty = function(e) { | |||
|  |                   return this.bMarks[e] + this.tShift[e] >= this.eMarks[e] | |||
|  |                 }), | |||
|  |                 (n.prototype.skipEmptyLines = function(e) { | |||
|  |                   for ( | |||
|  |                     var r = this.lineMax; | |||
|  |                     e < r && | |||
|  |                     !(this.bMarks[e] + this.tShift[e] < this.eMarks[e]); | |||
|  |                     e++ | |||
|  |                   ); | |||
|  |                   return e | |||
|  |                 }), | |||
|  |                 (n.prototype.skipSpaces = function(e) { | |||
|  |                   for ( | |||
|  |                     var r, t = this.src.length; | |||
|  |                     e < t && ((r = this.src.charCodeAt(e)), o(r)); | |||
|  |                     e++ | |||
|  |                   ); | |||
|  |                   return e | |||
|  |                 }), | |||
|  |                 (n.prototype.skipSpacesBack = function(e, r) { | |||
|  |                   if (e <= r) return e | |||
|  |                   for (; e > r; ) if (!o(this.src.charCodeAt(--e))) return e + 1 | |||
|  |                   return e | |||
|  |                 }), | |||
|  |                 (n.prototype.skipChars = function(e, r) { | |||
|  |                   for ( | |||
|  |                     var t = this.src.length; | |||
|  |                     e < t && this.src.charCodeAt(e) === r; | |||
|  |                     e++ | |||
|  |                   ); | |||
|  |                   return e | |||
|  |                 }), | |||
|  |                 (n.prototype.skipCharsBack = function(e, r, t) { | |||
|  |                   if (e <= t) return e | |||
|  |                   for (; e > t; ) | |||
|  |                     if (r !== this.src.charCodeAt(--e)) return e + 1 | |||
|  |                   return e | |||
|  |                 }), | |||
|  |                 (n.prototype.getLines = function(e, r, t, n) { | |||
|  |                   var s, | |||
|  |                     i, | |||
|  |                     a, | |||
|  |                     c, | |||
|  |                     l, | |||
|  |                     u, | |||
|  |                     p, | |||
|  |                     h = e | |||
|  |                   if (e >= r) return '' | |||
|  |                   for (u = new Array(r - e), s = 0; h < r; h++, s++) { | |||
|  |                     for ( | |||
|  |                       i = 0, | |||
|  |                         p = c = this.bMarks[h], | |||
|  |                         l = | |||
|  |                           h + 1 < r || n ? this.eMarks[h] + 1 : this.eMarks[h]; | |||
|  |                       c < l && i < t; | |||
|  | 
 | |||
|  |                     ) { | |||
|  |                       if (((a = this.src.charCodeAt(c)), o(a))) | |||
|  |                         9 === a ? (i += 4 - (i % 4)) : i++ | |||
|  |                       else { | |||
|  |                         if (!(c - p < this.tShift[h])) break | |||
|  |                         i++ | |||
|  |                       } | |||
|  |                       c++ | |||
|  |                     } | |||
|  |                     u[s] = this.src.slice(c, l) | |||
|  |                   } | |||
|  |                   return u.join('') | |||
|  |                 }), | |||
|  |                 (n.prototype.Token = s), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { '../common/utils': 4, '../token': 51 } | |||
|  |           ], | |||
|  |           29: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r) { | |||
|  |                 var t = e.bMarks[r] + e.blkIndent, | |||
|  |                   n = e.eMarks[r] | |||
|  |                 return e.src.substr(t, n - t) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 var r, | |||
|  |                   t = [], | |||
|  |                   n = 0, | |||
|  |                   s = e.length, | |||
|  |                   o = 0, | |||
|  |                   i = 0, | |||
|  |                   a = !1, | |||
|  |                   c = 0 | |||
|  |                 for (r = e.charCodeAt(n); n < s; ) | |||
|  |                   96 === r && o % 2 === 0 | |||
|  |                     ? ((a = !a), (c = n)) | |||
|  |                     : 124 !== r || o % 2 !== 0 || a | |||
|  |                     ? 92 === r | |||
|  |                       ? o++ | |||
|  |                       : (o = 0) | |||
|  |                     : (t.push(e.substring(i, n)), (i = n + 1)), | |||
|  |                     n++, | |||
|  |                     n === s && a && ((a = !1), (n = c + 1)), | |||
|  |                     (r = e.charCodeAt(n)) | |||
|  |                 return t.push(e.substring(i)), t | |||
|  |               } | |||
|  | 
 | |||
|  |               r.exports = function(e, r, t, o) { | |||
|  |                 var i, a, c, l, u, p, h, f, d, m, _, g | |||
|  |                 if (r + 2 > t) return !1 | |||
|  |                 if (((u = r + 1), e.sCount[u] < e.blkIndent)) return !1 | |||
|  |                 if (((c = e.bMarks[u] + e.tShift[u]), c >= e.eMarks[u])) | |||
|  |                   return !1 | |||
|  |                 if ( | |||
|  |                   ((i = e.src.charCodeAt(c)), 124 !== i && 45 !== i && 58 !== i) | |||
|  |                 ) | |||
|  |                   return !1 | |||
|  |                 if (((a = n(e, r + 1)), !/^[-:| ]+$/.test(a))) return !1 | |||
|  |                 for (p = a.split('|'), d = [], l = 0; l < p.length; l++) { | |||
|  |                   if (((m = p[l].trim()), !m)) { | |||
|  |                     if (0 === l || l === p.length - 1) continue | |||
|  |                     return !1 | |||
|  |                   } | |||
|  |                   if (!/^:?-+:?$/.test(m)) return !1 | |||
|  |                   58 === m.charCodeAt(m.length - 1) | |||
|  |                     ? d.push(58 === m.charCodeAt(0) ? 'center' : 'right') | |||
|  |                     : 58 === m.charCodeAt(0) | |||
|  |                     ? d.push('left') | |||
|  |                     : d.push('') | |||
|  |                 } | |||
|  |                 if (((a = n(e, r).trim()), a.indexOf('|') === -1)) return !1 | |||
|  |                 if ( | |||
|  |                   ((p = s(a.replace(/^\||\|$/g, ''))), | |||
|  |                   (h = p.length), | |||
|  |                   h > d.length) | |||
|  |                 ) | |||
|  |                   return !1 | |||
|  |                 if (o) return !0 | |||
|  |                 for ( | |||
|  |                   f = e.push('table_open', 'table', 1), | |||
|  |                     f.map = _ = [r, 0], | |||
|  |                     f = e.push('thead_open', 'thead', 1), | |||
|  |                     f.map = [r, r + 1], | |||
|  |                     f = e.push('tr_open', 'tr', 1), | |||
|  |                     f.map = [r, r + 1], | |||
|  |                     l = 0; | |||
|  |                   l < p.length; | |||
|  |                   l++ | |||
|  |                 ) | |||
|  |                   (f = e.push('th_open', 'th', 1)), | |||
|  |                     (f.map = [r, r + 1]), | |||
|  |                     d[l] && (f.attrs = [['style', 'text-align:' + d[l]]]), | |||
|  |                     (f = e.push('inline', '', 0)), | |||
|  |                     (f.content = p[l].trim()), | |||
|  |                     (f.map = [r, r + 1]), | |||
|  |                     (f.children = []), | |||
|  |                     (f = e.push('th_close', 'th', -1)) | |||
|  |                 for ( | |||
|  |                   f = e.push('tr_close', 'tr', -1), | |||
|  |                     f = e.push('thead_close', 'thead', -1), | |||
|  |                     f = e.push('tbody_open', 'tbody', 1), | |||
|  |                     f.map = g = [r + 2, 0], | |||
|  |                     u = r + 2; | |||
|  |                   u < t && | |||
|  |                   !(e.sCount[u] < e.blkIndent) && | |||
|  |                   ((a = n(e, u)), a.indexOf('|') !== -1); | |||
|  |                   u++ | |||
|  |                 ) { | |||
|  |                   for ( | |||
|  |                     p = s(a.replace(/^\||\|\s*$/g, '')), | |||
|  |                       f = e.push('tr_open', 'tr', 1), | |||
|  |                       l = 0; | |||
|  |                     l < h; | |||
|  |                     l++ | |||
|  |                   ) | |||
|  |                     (f = e.push('td_open', 'td', 1)), | |||
|  |                       d[l] && (f.attrs = [['style', 'text-align:' + d[l]]]), | |||
|  |                       (f = e.push('inline', '', 0)), | |||
|  |                       (f.content = p[l] ? p[l].trim() : ''), | |||
|  |                       (f.children = []), | |||
|  |                       (f = e.push('td_close', 'td', -1)) | |||
|  |                   f = e.push('tr_close', 'tr', -1) | |||
|  |                 } | |||
|  |                 return ( | |||
|  |                   (f = e.push('tbody_close', 'tbody', -1)), | |||
|  |                   (f = e.push('table_close', 'table', -1)), | |||
|  |                   (_[1] = g[1] = u), | |||
|  |                   (e.line = u), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           30: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r | |||
|  |                 e.inlineMode | |||
|  |                   ? ((r = new e.Token('inline', '', 0)), | |||
|  |                     (r.content = e.src), | |||
|  |                     (r.map = [0, 1]), | |||
|  |                     (r.children = []), | |||
|  |                     e.tokens.push(r)) | |||
|  |                   : e.md.block.parse(e.src, e.md, e.env, e.tokens) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           31: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n, | |||
|  |                   s = e.tokens | |||
|  |                 for (t = 0, n = s.length; t < n; t++) | |||
|  |                   (r = s[t]), | |||
|  |                     'inline' === r.type && | |||
|  |                       e.md.inline.parse(r.content, e.md, e.env, r.children) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           32: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 return /^<a[>\s]/i.test(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 return /^<\/a\s*>/i.test(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               var o = e('../common/utils').arrayReplaceAt | |||
|  |               r.exports = function(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v, | |||
|  |                   x = e.tokens | |||
|  |                 if (e.md.options.linkify) | |||
|  |                   for (t = 0, i = x.length; t < i; t++) | |||
|  |                     if ( | |||
|  |                       'inline' === x[t].type && | |||
|  |                       e.md.linkify.pretest(x[t].content) | |||
|  |                     ) | |||
|  |                       for ( | |||
|  |                         a = x[t].children, _ = 0, r = a.length - 1; | |||
|  |                         r >= 0; | |||
|  |                         r-- | |||
|  |                       ) | |||
|  |                         if (((l = a[r]), 'link_close' !== l.type)) { | |||
|  |                           if ( | |||
|  |                             ('html_inline' === l.type && | |||
|  |                               (n(l.content) && _ > 0 && _--, | |||
|  |                               s(l.content) && _++), | |||
|  |                             !(_ > 0) && | |||
|  |                               'text' === l.type && | |||
|  |                               e.md.linkify.test(l.content)) | |||
|  |                           ) { | |||
|  |                             for ( | |||
|  |                               h = l.content, | |||
|  |                                 v = e.md.linkify.match(h), | |||
|  |                                 u = [], | |||
|  |                                 m = l.level, | |||
|  |                                 d = 0, | |||
|  |                                 p = 0; | |||
|  |                               p < v.length; | |||
|  |                               p++ | |||
|  |                             ) | |||
|  |                               (g = v[p].url), | |||
|  |                                 (k = e.md.normalizeLink(g)), | |||
|  |                                 e.md.validateLink(k) && | |||
|  |                                   ((b = v[p].text), | |||
|  |                                   (b = v[p].schema | |||
|  |                                     ? 'mailto:' !== v[p].schema || | |||
|  |                                       /^mailto:/i.test(b) | |||
|  |                                       ? e.md.normalizeLinkText(b) | |||
|  |                                       : e.md | |||
|  |                                           .normalizeLinkText('mailto:' + b) | |||
|  |                                           .replace(/^mailto:/, '') | |||
|  |                                     : e.md | |||
|  |                                         .normalizeLinkText('http://' + b) | |||
|  |                                         .replace(/^http:\/\//, '')), | |||
|  |                                   (f = v[p].index), | |||
|  |                                   f > d && | |||
|  |                                     ((c = new e.Token('text', '', 0)), | |||
|  |                                     (c.content = h.slice(d, f)), | |||
|  |                                     (c.level = m), | |||
|  |                                     u.push(c)), | |||
|  |                                   (c = new e.Token('link_open', 'a', 1)), | |||
|  |                                   (c.attrs = [['href', k]]), | |||
|  |                                   (c.level = m++), | |||
|  |                                   (c.markup = 'linkify'), | |||
|  |                                   (c.info = 'auto'), | |||
|  |                                   u.push(c), | |||
|  |                                   (c = new e.Token('text', '', 0)), | |||
|  |                                   (c.content = b), | |||
|  |                                   (c.level = m), | |||
|  |                                   u.push(c), | |||
|  |                                   (c = new e.Token('link_close', 'a', -1)), | |||
|  |                                   (c.level = --m), | |||
|  |                                   (c.markup = 'linkify'), | |||
|  |                                   (c.info = 'auto'), | |||
|  |                                   u.push(c), | |||
|  |                                   (d = v[p].lastIndex)) | |||
|  |                             d < h.length && | |||
|  |                               ((c = new e.Token('text', '', 0)), | |||
|  |                               (c.content = h.slice(d)), | |||
|  |                               (c.level = m), | |||
|  |                               u.push(c)), | |||
|  |                               (x[t].children = a = o(a, r, u)) | |||
|  |                           } | |||
|  |                         } else | |||
|  |                           for ( | |||
|  |                             r--; | |||
|  |                             a[r].level !== l.level && 'link_open' !== a[r].type; | |||
|  | 
 | |||
|  |                           ) | |||
|  |                             r-- | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           33: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = /\r[\n\u0085]?|[\u2424\u2028\u0085]/g, | |||
|  |                 s = /\u0000/g | |||
|  |               r.exports = function(e) { | |||
|  |                 var r | |||
|  |                 ;(r = e.src.replace(n, '\n')), | |||
|  |                   (r = r.replace(s, '<27>')), | |||
|  |                   (e.src = r) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           34: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r) { | |||
|  |                 return l[r.toLowerCase()] | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 var r, t | |||
|  |                 for (r = e.length - 1; r >= 0; r--) | |||
|  |                   (t = e[r]), | |||
|  |                     'text' === t.type && (t.content = t.content.replace(c, n)) | |||
|  |               } | |||
|  | 
 | |||
|  |               function o(e) { | |||
|  |                 var r, t | |||
|  |                 for (r = e.length - 1; r >= 0; r--) | |||
|  |                   (t = e[r]), | |||
|  |                     'text' === t.type && | |||
|  |                       i.test(t.content) && | |||
|  |                       (t.content = t.content | |||
|  |                         .replace(/\+-/g, '±') | |||
|  |                         .replace(/\.{2,}/g, '…') | |||
|  |                         .replace(/([?!])\u2026/g, '$1..') | |||
|  |                         .replace(/([?!]){4,}/g, '$1$1$1') | |||
|  |                         .replace(/,{2,}/g, ',') | |||
|  |                         .replace(/(^|[^-])---([^-]|$)/gm, '$1—$2') | |||
|  |                         .replace(/(^|\s)--(\s|$)/gm, '$1–$2') | |||
|  |                         .replace(/(^|[^-\s])--([^-\s]|$)/gm, '$1–$2')) | |||
|  |               } | |||
|  | 
 | |||
|  |               var i = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/, | |||
|  |                 a = /\((c|tm|r|p)\)/i, | |||
|  |                 c = /\((c|tm|r|p)\)/gi, | |||
|  |                 l = { c: '©', r: '®', p: '§', tm: '™' } | |||
|  |               r.exports = function(e) { | |||
|  |                 var r | |||
|  |                 if (e.md.options.typographer) | |||
|  |                   for (r = e.tokens.length - 1; r >= 0; r--) | |||
|  |                     'inline' === e.tokens[r].type && | |||
|  |                       (a.test(e.tokens[r].content) && s(e.tokens[r].children), | |||
|  |                       i.test(e.tokens[r].content) && o(e.tokens[r].children)) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           35: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r, t) { | |||
|  |                 return e.substr(0, r) + t + e.substr(r + 1) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e, r) { | |||
|  |                 var t, | |||
|  |                   s, | |||
|  |                   c, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v, | |||
|  |                   x, | |||
|  |                   y, | |||
|  |                   C, | |||
|  |                   A, | |||
|  |                   w, | |||
|  |                   D, | |||
|  |                   q, | |||
|  |                   E | |||
|  |                 for (D = [], t = 0; t < e.length; t++) { | |||
|  |                   for ( | |||
|  |                     s = e[t], d = e[t].level, A = D.length - 1; | |||
|  |                     A >= 0 && !(D[A].level <= d); | |||
|  |                     A-- | |||
|  |                   ); | |||
|  |                   if (((D.length = A + 1), 'text' === s.type)) { | |||
|  |                     ;(c = s.content), (h = 0), (f = c.length) | |||
|  |                     e: for (; h < f && ((l.lastIndex = h), (p = l.exec(c))); ) { | |||
|  |                       if ( | |||
|  |                         ((y = C = !0), | |||
|  |                         (h = p.index + 1), | |||
|  |                         (w = "'" === p[0]), | |||
|  |                         (_ = 32), | |||
|  |                         p.index - 1 >= 0) | |||
|  |                       ) | |||
|  |                         _ = c.charCodeAt(p.index - 1) | |||
|  |                       else | |||
|  |                         for (A = t - 1; A >= 0; A--) | |||
|  |                           if ('text' === e[A].type) { | |||
|  |                             _ = e[A].content.charCodeAt(e[A].content.length - 1) | |||
|  |                             break | |||
|  |                           } | |||
|  |                       if (((g = 32), h < f)) g = c.charCodeAt(h) | |||
|  |                       else | |||
|  |                         for (A = t + 1; A < e.length; A++) | |||
|  |                           if ('text' === e[A].type) { | |||
|  |                             g = e[A].content.charCodeAt(0) | |||
|  |                             break | |||
|  |                           } | |||
|  |                       if ( | |||
|  |                         ((k = a(_) || i(String.fromCharCode(_))), | |||
|  |                         (b = a(g) || i(String.fromCharCode(g))), | |||
|  |                         (v = o(_)), | |||
|  |                         (x = o(g)), | |||
|  |                         x ? (y = !1) : b && (v || k || (y = !1)), | |||
|  |                         v ? (C = !1) : k && (x || b || (C = !1)), | |||
|  |                         34 === g && | |||
|  |                           '"' === p[0] && | |||
|  |                           _ >= 48 && | |||
|  |                           _ <= 57 && | |||
|  |                           (C = y = !1), | |||
|  |                         y && C && ((y = !1), (C = b)), | |||
|  |                         y || C) | |||
|  |                       ) { | |||
|  |                         if (C) | |||
|  |                           for ( | |||
|  |                             A = D.length - 1; | |||
|  |                             A >= 0 && ((m = D[A]), !(D[A].level < d)); | |||
|  |                             A-- | |||
|  |                           ) | |||
|  |                             if (m.single === w && D[A].level === d) { | |||
|  |                               ;(m = D[A]), | |||
|  |                                 w | |||
|  |                                   ? ((q = r.md.options.quotes[2]), | |||
|  |                                     (E = r.md.options.quotes[3])) | |||
|  |                                   : ((q = r.md.options.quotes[0]), | |||
|  |                                     (E = r.md.options.quotes[1])), | |||
|  |                                 (s.content = n(s.content, p.index, E)), | |||
|  |                                 (e[m.token].content = n( | |||
|  |                                   e[m.token].content, | |||
|  |                                   m.pos, | |||
|  |                                   q | |||
|  |                                 )), | |||
|  |                                 (h += E.length - 1), | |||
|  |                                 m.token === t && (h += q.length - 1), | |||
|  |                                 (c = s.content), | |||
|  |                                 (f = c.length), | |||
|  |                                 (D.length = A) | |||
|  |                               continue e | |||
|  |                             } | |||
|  |                         y | |||
|  |                           ? D.push({ | |||
|  |                               token: t, | |||
|  |                               pos: p.index, | |||
|  |                               single: w, | |||
|  |                               level: d | |||
|  |                             }) | |||
|  |                           : C && w && (s.content = n(s.content, p.index, u)) | |||
|  |                       } else w && (s.content = n(s.content, p.index, u)) | |||
|  |                     } | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               var o = e('../common/utils').isWhiteSpace, | |||
|  |                 i = e('../common/utils').isPunctChar, | |||
|  |                 a = e('../common/utils').isMdAsciiPunct, | |||
|  |                 c = /['"]/, | |||
|  |                 l = /['"]/g, | |||
|  |                 u = '’' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r | |||
|  |                 if (e.md.options.typographer) | |||
|  |                   for (r = e.tokens.length - 1; r >= 0; r--) | |||
|  |                     'inline' === e.tokens[r].type && | |||
|  |                       c.test(e.tokens[r].content) && | |||
|  |                       s(e.tokens[r].children, e) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           36: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r, t) { | |||
|  |                 ;(this.src = e), | |||
|  |                   (this.env = t), | |||
|  |                   (this.tokens = []), | |||
|  |                   (this.inlineMode = !1), | |||
|  |                   (this.md = r) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('../token') | |||
|  |               ;(n.prototype.Token = s), (r.exports = n) | |||
|  |             }, | |||
|  |             { '../token': 51 } | |||
|  |           ], | |||
|  |           37: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/, | |||
|  |                 s = /^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/ | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u = e.pos | |||
|  |                 return ( | |||
|  |                   60 === e.src.charCodeAt(u) && | |||
|  |                   ((t = e.src.slice(u)), | |||
|  |                   !(t.indexOf('>') < 0) && | |||
|  |                     (s.test(t) | |||
|  |                       ? ((o = t.match(s)), | |||
|  |                         (a = o[0].slice(1, -1)), | |||
|  |                         (c = e.md.normalizeLink(a)), | |||
|  |                         !!e.md.validateLink(c) && | |||
|  |                           (r || | |||
|  |                             ((l = e.push('link_open', 'a', 1)), | |||
|  |                             (l.attrs = [['href', c]]), | |||
|  |                             (l.markup = 'autolink'), | |||
|  |                             (l.info = 'auto'), | |||
|  |                             (l = e.push('text', '', 0)), | |||
|  |                             (l.content = e.md.normalizeLinkText(a)), | |||
|  |                             (l = e.push('link_close', 'a', -1)), | |||
|  |                             (l.markup = 'autolink'), | |||
|  |                             (l.info = 'auto')), | |||
|  |                           (e.pos += o[0].length), | |||
|  |                           !0)) | |||
|  |                       : !!n.test(t) && | |||
|  |                         ((i = t.match(n)), | |||
|  |                         (a = i[0].slice(1, -1)), | |||
|  |                         (c = e.md.normalizeLink('mailto:' + a)), | |||
|  |                         !!e.md.validateLink(c) && | |||
|  |                           (r || | |||
|  |                             ((l = e.push('link_open', 'a', 1)), | |||
|  |                             (l.attrs = [['href', c]]), | |||
|  |                             (l.markup = 'autolink'), | |||
|  |                             (l.info = 'auto'), | |||
|  |                             (l = e.push('text', '', 0)), | |||
|  |                             (l.content = e.md.normalizeLinkText(a)), | |||
|  |                             (l = e.push('link_close', 'a', -1)), | |||
|  |                             (l.markup = 'autolink'), | |||
|  |                             (l.info = 'auto')), | |||
|  |                           (e.pos += i[0].length), | |||
|  |                           !0)))) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           38: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c = e.pos, | |||
|  |                   l = e.src.charCodeAt(c) | |||
|  |                 if (96 !== l) return !1 | |||
|  |                 for ( | |||
|  |                   t = c, c++, n = e.posMax; | |||
|  |                   c < n && 96 === e.src.charCodeAt(c); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   c++ | |||
|  |                 for ( | |||
|  |                   s = e.src.slice(t, c), o = i = c; | |||
|  |                   (o = e.src.indexOf('`', i)) !== -1; | |||
|  | 
 | |||
|  |                 ) { | |||
|  |                   for (i = o + 1; i < n && 96 === e.src.charCodeAt(i); ) i++ | |||
|  |                   if (i - o === s.length) | |||
|  |                     return ( | |||
|  |                       r || | |||
|  |                         ((a = e.push('code_inline', 'code', 0)), | |||
|  |                         (a.markup = s), | |||
|  |                         (a.content = e.src | |||
|  |                           .slice(c, o) | |||
|  |                           .replace(/[ \n]+/g, ' ') | |||
|  |                           .trim())), | |||
|  |                       (e.pos = i), | |||
|  |                       !0 | |||
|  |                     ) | |||
|  |                 } | |||
|  |                 return r || (e.pending += s), (e.pos += s.length), !0 | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           39: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n, | |||
|  |                   s, | |||
|  |                   o = e.delimiters, | |||
|  |                   i = e.delimiters.length | |||
|  |                 for (r = 0; r < i; r++) | |||
|  |                   if (((n = o[r]), n.close)) | |||
|  |                     for (t = r - n.jump - 1; t >= 0; ) { | |||
|  |                       if ( | |||
|  |                         ((s = o[t]), | |||
|  |                         s.open && | |||
|  |                           s.marker === n.marker && | |||
|  |                           s.end < 0 && | |||
|  |                           s.level === n.level) | |||
|  |                       ) { | |||
|  |                         ;(n.jump = r - t), | |||
|  |                           (n.open = !1), | |||
|  |                           (s.end = r), | |||
|  |                           (s.jump = 0) | |||
|  |                         break | |||
|  |                       } | |||
|  |                       t -= s.jump + 1 | |||
|  |                     } | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           40: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               ;(r.exports.tokenize = function(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s, | |||
|  |                   o = e.pos, | |||
|  |                   i = e.src.charCodeAt(o) | |||
|  |                 if (r) return !1 | |||
|  |                 if (95 !== i && 42 !== i) return !1 | |||
|  |                 for ( | |||
|  |                   n = e.scanDelims(e.pos, 42 === i), t = 0; | |||
|  |                   t < n.length; | |||
|  |                   t++ | |||
|  |                 ) | |||
|  |                   (s = e.push('text', '', 0)), | |||
|  |                     (s.content = String.fromCharCode(i)), | |||
|  |                     e.delimiters.push({ | |||
|  |                       marker: i, | |||
|  |                       jump: t, | |||
|  |                       token: e.tokens.length - 1, | |||
|  |                       level: e.level, | |||
|  |                       end: -1, | |||
|  |                       open: n.can_open, | |||
|  |                       close: n.can_close | |||
|  |                     }) | |||
|  |                 return (e.pos += n.length), !0 | |||
|  |               }), | |||
|  |                 (r.exports.postProcess = function(e) { | |||
|  |                   var r, | |||
|  |                     t, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     o, | |||
|  |                     i, | |||
|  |                     a = e.delimiters, | |||
|  |                     c = e.delimiters.length | |||
|  |                   for (r = 0; r < c; r++) | |||
|  |                     (t = a[r]), | |||
|  |                       (95 !== t.marker && 42 !== t.marker) || | |||
|  |                         (t.end !== -1 && | |||
|  |                           ((n = a[t.end]), | |||
|  |                           (i = | |||
|  |                             r + 1 < c && | |||
|  |                             a[r + 1].end === t.end - 1 && | |||
|  |                             a[r + 1].token === t.token + 1 && | |||
|  |                             a[t.end - 1].token === n.token - 1 && | |||
|  |                             a[r + 1].marker === t.marker), | |||
|  |                           (o = String.fromCharCode(t.marker)), | |||
|  |                           (s = e.tokens[t.token]), | |||
|  |                           (s.type = i ? 'strong_open' : 'em_open'), | |||
|  |                           (s.tag = i ? 'strong' : 'em'), | |||
|  |                           (s.nesting = 1), | |||
|  |                           (s.markup = i ? o + o : o), | |||
|  |                           (s.content = ''), | |||
|  |                           (s = e.tokens[n.token]), | |||
|  |                           (s.type = i ? 'strong_close' : 'em_close'), | |||
|  |                           (s.tag = i ? 'strong' : 'em'), | |||
|  |                           (s.nesting = -1), | |||
|  |                           (s.markup = i ? o + o : o), | |||
|  |                           (s.content = ''), | |||
|  |                           i && | |||
|  |                             ((e.tokens[a[r + 1].token].content = ''), | |||
|  |                             (e.tokens[a[t.end - 1].token].content = ''), | |||
|  |                             r++))) | |||
|  |                 }) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           41: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../common/entities'), | |||
|  |                 s = e('../common/utils').has, | |||
|  |                 o = e('../common/utils').isValidEntityCode, | |||
|  |                 i = e('../common/utils').fromCodePoint, | |||
|  |                 a = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i, | |||
|  |                 c = /^&([a-z][a-z0-9]{1,31});/i | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p = e.pos, | |||
|  |                   h = e.posMax | |||
|  |                 if (38 !== e.src.charCodeAt(p)) return !1 | |||
|  |                 if (p + 1 < h) | |||
|  |                   if (((t = e.src.charCodeAt(p + 1)), 35 === t)) { | |||
|  |                     if ((u = e.src.slice(p).match(a))) | |||
|  |                       return ( | |||
|  |                         r || | |||
|  |                           ((l = | |||
|  |                             'x' === u[1][0].toLowerCase() | |||
|  |                               ? parseInt(u[1].slice(1), 16) | |||
|  |                               : parseInt(u[1], 10)), | |||
|  |                           (e.pending += i(o(l) ? l : 65533))), | |||
|  |                         (e.pos += u[0].length), | |||
|  |                         !0 | |||
|  |                       ) | |||
|  |                   } else if (((u = e.src.slice(p).match(c)), u && s(n, u[1]))) | |||
|  |                     return ( | |||
|  |                       r || (e.pending += n[u[1]]), (e.pos += u[0].length), !0 | |||
|  |                     ) | |||
|  |                 return r || (e.pending += '&'), e.pos++, !0 | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/entities': 1, '../common/utils': 4 } | |||
|  |           ], | |||
|  |           42: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               for ( | |||
|  |                 var n = e('../common/utils').isSpace, s = [], o = 0; | |||
|  |                 o < 256; | |||
|  |                 o++ | |||
|  |               ) | |||
|  |                 s.push(0) | |||
|  |               '\\!"#$%&\'()*+,./:;<=>?@[]^_`{|}~-' | |||
|  |                 .split('') | |||
|  |                 .forEach(function(e) { | |||
|  |                   s[e.charCodeAt(0)] = 1 | |||
|  |                 }), | |||
|  |                 (r.exports = function(e, r) { | |||
|  |                   var t, | |||
|  |                     o = e.pos, | |||
|  |                     i = e.posMax | |||
|  |                   if (92 !== e.src.charCodeAt(o)) return !1 | |||
|  |                   if ((o++, o < i)) { | |||
|  |                     if (((t = e.src.charCodeAt(o)), t < 256 && 0 !== s[t])) | |||
|  |                       return r || (e.pending += e.src[o]), (e.pos += 2), !0 | |||
|  |                     if (10 === t) { | |||
|  |                       for ( | |||
|  |                         r || e.push('hardbreak', 'br', 0), o++; | |||
|  |                         o < i && ((t = e.src.charCodeAt(o)), n(t)); | |||
|  | 
 | |||
|  |                       ) | |||
|  |                         o++ | |||
|  |                       return (e.pos = o), !0 | |||
|  |                     } | |||
|  |                   } | |||
|  |                   return r || (e.pending += '\\'), e.pos++, !0 | |||
|  |                 }) | |||
|  |             }, | |||
|  |             { '../common/utils': 4 } | |||
|  |           ], | |||
|  |           43: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 var r = 32 | e | |||
|  |                 return r >= 97 && r <= 122 | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('../common/html_re').HTML_TAG_RE | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c = e.pos | |||
|  |                 return ( | |||
|  |                   !!e.md.options.html && | |||
|  |                   ((i = e.posMax), | |||
|  |                   !(60 !== e.src.charCodeAt(c) || c + 2 >= i) && | |||
|  |                     ((t = e.src.charCodeAt(c + 1)), | |||
|  |                     !(33 !== t && 63 !== t && 47 !== t && !n(t)) && | |||
|  |                       !!(o = e.src.slice(c).match(s)) && | |||
|  |                       (r || | |||
|  |                         ((a = e.push('html_inline', '', 0)), | |||
|  |                         (a.content = e.src.slice(c, c + o[0].length))), | |||
|  |                       (e.pos += o[0].length), | |||
|  |                       !0))) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { '../common/html_re': 3 } | |||
|  |           ], | |||
|  |           44: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../helpers/parse_link_label'), | |||
|  |                 s = e('../helpers/parse_link_destination'), | |||
|  |                 o = e('../helpers/parse_link_title'), | |||
|  |                 i = e('../common/utils').normalizeReference, | |||
|  |                 a = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g, | |||
|  |                   k, | |||
|  |                   b, | |||
|  |                   v = '', | |||
|  |                   x = e.pos, | |||
|  |                   y = e.posMax | |||
|  |                 if (33 !== e.src.charCodeAt(e.pos)) return !1 | |||
|  |                 if (91 !== e.src.charCodeAt(e.pos + 1)) return !1 | |||
|  |                 if (((h = e.pos + 2), (p = n(e, e.pos + 1, !1)), p < 0)) | |||
|  |                   return !1 | |||
|  |                 if (((f = p + 1), f < y && 40 === e.src.charCodeAt(f))) { | |||
|  |                   for ( | |||
|  |                     f++; | |||
|  |                     f < y && ((c = e.src.charCodeAt(f)), a(c) || 10 === c); | |||
|  |                     f++ | |||
|  |                   ); | |||
|  |                   if (f >= y) return !1 | |||
|  |                   for ( | |||
|  |                     b = f, | |||
|  |                       m = s(e.src, f, e.posMax), | |||
|  |                       m.ok && | |||
|  |                         ((v = e.md.normalizeLink(m.str)), | |||
|  |                         e.md.validateLink(v) ? (f = m.pos) : (v = '')), | |||
|  |                       b = f; | |||
|  |                     f < y && ((c = e.src.charCodeAt(f)), a(c) || 10 === c); | |||
|  |                     f++ | |||
|  |                   ); | |||
|  |                   if (((m = o(e.src, f, e.posMax)), f < y && b !== f && m.ok)) | |||
|  |                     for ( | |||
|  |                       _ = m.str, f = m.pos; | |||
|  |                       f < y && ((c = e.src.charCodeAt(f)), a(c) || 10 === c); | |||
|  |                       f++ | |||
|  |                     ); | |||
|  |                   else _ = '' | |||
|  |                   if (f >= y || 41 !== e.src.charCodeAt(f)) | |||
|  |                     return (e.pos = x), !1 | |||
|  |                   f++ | |||
|  |                 } else { | |||
|  |                   if ('undefined' == typeof e.env.references) return !1 | |||
|  |                   if ( | |||
|  |                     (f < y && 91 === e.src.charCodeAt(f) | |||
|  |                       ? ((b = f + 1), | |||
|  |                         (f = n(e, f)), | |||
|  |                         f >= 0 ? (u = e.src.slice(b, f++)) : (f = p + 1)) | |||
|  |                       : (f = p + 1), | |||
|  |                     u || (u = e.src.slice(h, p)), | |||
|  |                     (d = e.env.references[i(u)]), | |||
|  |                     !d) | |||
|  |                   ) | |||
|  |                     return (e.pos = x), !1 | |||
|  |                   ;(v = d.href), (_ = d.title) | |||
|  |                 } | |||
|  |                 return ( | |||
|  |                   r || | |||
|  |                     ((l = e.src.slice(h, p)), | |||
|  |                     e.md.inline.parse(l, e.md, e.env, (k = [])), | |||
|  |                     (g = e.push('image', 'img', 0)), | |||
|  |                     (g.attrs = t = [ | |||
|  |                       ['src', v], | |||
|  |                       ['alt', ''] | |||
|  |                     ]), | |||
|  |                     (g.children = k), | |||
|  |                     (g.content = l), | |||
|  |                     _ && t.push(['title', _])), | |||
|  |                   (e.pos = f), | |||
|  |                   (e.posMax = y), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { | |||
|  |               '../common/utils': 4, | |||
|  |               '../helpers/parse_link_destination': 6, | |||
|  |               '../helpers/parse_link_label': 7, | |||
|  |               '../helpers/parse_link_title': 8 | |||
|  |             } | |||
|  |           ], | |||
|  |           45: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               var n = e('../helpers/parse_link_label'), | |||
|  |                 s = e('../helpers/parse_link_destination'), | |||
|  |                 o = e('../helpers/parse_link_title'), | |||
|  |                 i = e('../common/utils').normalizeReference, | |||
|  |                 a = e('../common/utils').isSpace | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u, | |||
|  |                   p, | |||
|  |                   h, | |||
|  |                   f, | |||
|  |                   d, | |||
|  |                   m, | |||
|  |                   _, | |||
|  |                   g = '', | |||
|  |                   k = e.pos, | |||
|  |                   b = e.posMax, | |||
|  |                   v = e.pos | |||
|  |                 if (91 !== e.src.charCodeAt(e.pos)) return !1 | |||
|  |                 if (((p = e.pos + 1), (u = n(e, e.pos, !0)), u < 0)) return !1 | |||
|  |                 if (((h = u + 1), h < b && 40 === e.src.charCodeAt(h))) { | |||
|  |                   for ( | |||
|  |                     h++; | |||
|  |                     h < b && ((c = e.src.charCodeAt(h)), a(c) || 10 === c); | |||
|  |                     h++ | |||
|  |                   ); | |||
|  |                   if (h >= b) return !1 | |||
|  |                   for ( | |||
|  |                     v = h, | |||
|  |                       f = s(e.src, h, e.posMax), | |||
|  |                       f.ok && | |||
|  |                         ((g = e.md.normalizeLink(f.str)), | |||
|  |                         e.md.validateLink(g) ? (h = f.pos) : (g = '')), | |||
|  |                       v = h; | |||
|  |                     h < b && ((c = e.src.charCodeAt(h)), a(c) || 10 === c); | |||
|  |                     h++ | |||
|  |                   ); | |||
|  |                   if (((f = o(e.src, h, e.posMax)), h < b && v !== h && f.ok)) | |||
|  |                     for ( | |||
|  |                       m = f.str, h = f.pos; | |||
|  |                       h < b && ((c = e.src.charCodeAt(h)), a(c) || 10 === c); | |||
|  |                       h++ | |||
|  |                     ); | |||
|  |                   else m = '' | |||
|  |                   if (h >= b || 41 !== e.src.charCodeAt(h)) | |||
|  |                     return (e.pos = k), !1 | |||
|  |                   h++ | |||
|  |                 } else { | |||
|  |                   if ('undefined' == typeof e.env.references) return !1 | |||
|  |                   if ( | |||
|  |                     (h < b && 91 === e.src.charCodeAt(h) | |||
|  |                       ? ((v = h + 1), | |||
|  |                         (h = n(e, h)), | |||
|  |                         h >= 0 ? (l = e.src.slice(v, h++)) : (h = u + 1)) | |||
|  |                       : (h = u + 1), | |||
|  |                     l || (l = e.src.slice(p, u)), | |||
|  |                     (d = e.env.references[i(l)]), | |||
|  |                     !d) | |||
|  |                   ) | |||
|  |                     return (e.pos = k), !1 | |||
|  |                   ;(g = d.href), (m = d.title) | |||
|  |                 } | |||
|  |                 return ( | |||
|  |                   r || | |||
|  |                     ((e.pos = p), | |||
|  |                     (e.posMax = u), | |||
|  |                     (_ = e.push('link_open', 'a', 1)), | |||
|  |                     (_.attrs = t = [['href', g]]), | |||
|  |                     m && t.push(['title', m]), | |||
|  |                     e.md.inline.tokenize(e), | |||
|  |                     (_ = e.push('link_close', 'a', -1))), | |||
|  |                   (e.pos = h), | |||
|  |                   (e.posMax = b), | |||
|  |                   !0 | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { | |||
|  |               '../common/utils': 4, | |||
|  |               '../helpers/parse_link_destination': 6, | |||
|  |               '../helpers/parse_link_label': 7, | |||
|  |               '../helpers/parse_link_title': 8 | |||
|  |             } | |||
|  |           ], | |||
|  |           46: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s = e.pos | |||
|  |                 if (10 !== e.src.charCodeAt(s)) return !1 | |||
|  |                 for ( | |||
|  |                   t = e.pending.length - 1, | |||
|  |                     n = e.posMax, | |||
|  |                     r || | |||
|  |                       (t >= 0 && 32 === e.pending.charCodeAt(t) | |||
|  |                         ? t >= 1 && 32 === e.pending.charCodeAt(t - 1) | |||
|  |                           ? ((e.pending = e.pending.replace(/ +$/, '')), | |||
|  |                             e.push('hardbreak', 'br', 0)) | |||
|  |                           : ((e.pending = e.pending.slice(0, -1)), | |||
|  |                             e.push('softbreak', 'br', 0)) | |||
|  |                         : e.push('softbreak', 'br', 0)), | |||
|  |                     s++; | |||
|  |                   s < n && 32 === e.src.charCodeAt(s); | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   s++ | |||
|  |                 return (e.pos = s), !0 | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           47: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r, t, n) { | |||
|  |                 ;(this.src = e), | |||
|  |                   (this.env = t), | |||
|  |                   (this.md = r), | |||
|  |                   (this.tokens = n), | |||
|  |                   (this.pos = 0), | |||
|  |                   (this.posMax = this.src.length), | |||
|  |                   (this.level = 0), | |||
|  |                   (this.pending = ''), | |||
|  |                   (this.pendingLevel = 0), | |||
|  |                   (this.cache = {}), | |||
|  |                   (this.delimiters = []) | |||
|  |               } | |||
|  | 
 | |||
|  |               var s = e('../token'), | |||
|  |                 o = e('../common/utils').isWhiteSpace, | |||
|  |                 i = e('../common/utils').isPunctChar, | |||
|  |                 a = e('../common/utils').isMdAsciiPunct | |||
|  |               ;(n.prototype.pushPending = function() { | |||
|  |                 var e = new s('text', '', 0) | |||
|  |                 return ( | |||
|  |                   (e.content = this.pending), | |||
|  |                   (e.level = this.pendingLevel), | |||
|  |                   this.tokens.push(e), | |||
|  |                   (this.pending = ''), | |||
|  |                   e | |||
|  |                 ) | |||
|  |               }), | |||
|  |                 (n.prototype.push = function(e, r, t) { | |||
|  |                   this.pending && this.pushPending() | |||
|  |                   var n = new s(e, r, t) | |||
|  |                   return ( | |||
|  |                     t < 0 && this.level--, | |||
|  |                     (n.level = this.level), | |||
|  |                     t > 0 && this.level++, | |||
|  |                     (this.pendingLevel = this.level), | |||
|  |                     this.tokens.push(n), | |||
|  |                     n | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (n.prototype.scanDelims = function(e, r) { | |||
|  |                   var t, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     c, | |||
|  |                     l, | |||
|  |                     u, | |||
|  |                     p, | |||
|  |                     h, | |||
|  |                     f, | |||
|  |                     d = e, | |||
|  |                     m = !0, | |||
|  |                     _ = !0, | |||
|  |                     g = this.posMax, | |||
|  |                     k = this.src.charCodeAt(e) | |||
|  |                   for ( | |||
|  |                     t = e > 0 ? this.src.charCodeAt(e - 1) : 32; | |||
|  |                     d < g && this.src.charCodeAt(d) === k; | |||
|  | 
 | |||
|  |                   ) | |||
|  |                     d++ | |||
|  |                   return ( | |||
|  |                     (s = d - e), | |||
|  |                     (n = d < g ? this.src.charCodeAt(d) : 32), | |||
|  |                     (p = a(t) || i(String.fromCharCode(t))), | |||
|  |                     (f = a(n) || i(String.fromCharCode(n))), | |||
|  |                     (u = o(t)), | |||
|  |                     (h = o(n)), | |||
|  |                     h ? (m = !1) : f && (u || p || (m = !1)), | |||
|  |                     u ? (_ = !1) : p && (h || f || (_ = !1)), | |||
|  |                     r | |||
|  |                       ? ((c = m), (l = _)) | |||
|  |                       : ((c = m && (!_ || p)), (l = _ && (!m || f))), | |||
|  |                     { | |||
|  |                       can_open: c, | |||
|  |                       can_close: l, | |||
|  |                       length: s | |||
|  |                     } | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (n.prototype.Token = s), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             { '../common/utils': 4, '../token': 51 } | |||
|  |           ], | |||
|  |           48: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               ;(r.exports.tokenize = function(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s, | |||
|  |                   o, | |||
|  |                   i, | |||
|  |                   a = e.pos, | |||
|  |                   c = e.src.charCodeAt(a) | |||
|  |                 if (r) return !1 | |||
|  |                 if (126 !== c) return !1 | |||
|  |                 if ( | |||
|  |                   ((n = e.scanDelims(e.pos, !0)), | |||
|  |                   (o = n.length), | |||
|  |                   (i = String.fromCharCode(c)), | |||
|  |                   o < 2) | |||
|  |                 ) | |||
|  |                   return !1 | |||
|  |                 for ( | |||
|  |                   o % 2 && ((s = e.push('text', '', 0)), (s.content = i), o--), | |||
|  |                     t = 0; | |||
|  |                   t < o; | |||
|  |                   t += 2 | |||
|  |                 ) | |||
|  |                   (s = e.push('text', '', 0)), | |||
|  |                     (s.content = i + i), | |||
|  |                     e.delimiters.push({ | |||
|  |                       marker: c, | |||
|  |                       jump: t, | |||
|  |                       token: e.tokens.length - 1, | |||
|  |                       level: e.level, | |||
|  |                       end: -1, | |||
|  |                       open: n.can_open, | |||
|  |                       close: n.can_close | |||
|  |                     }) | |||
|  |                 return (e.pos += n.length), !0 | |||
|  |               }), | |||
|  |                 (r.exports.postProcess = function(e) { | |||
|  |                   var r, | |||
|  |                     t, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     o, | |||
|  |                     i = [], | |||
|  |                     a = e.delimiters, | |||
|  |                     c = e.delimiters.length | |||
|  |                   for (r = 0; r < c; r++) | |||
|  |                     (n = a[r]), | |||
|  |                       126 === n.marker && | |||
|  |                         n.end !== -1 && | |||
|  |                         ((s = a[n.end]), | |||
|  |                         (o = e.tokens[n.token]), | |||
|  |                         (o.type = 's_open'), | |||
|  |                         (o.tag = 's'), | |||
|  |                         (o.nesting = 1), | |||
|  |                         (o.markup = '~~'), | |||
|  |                         (o.content = ''), | |||
|  |                         (o = e.tokens[s.token]), | |||
|  |                         (o.type = 's_close'), | |||
|  |                         (o.tag = 's'), | |||
|  |                         (o.nesting = -1), | |||
|  |                         (o.markup = '~~'), | |||
|  |                         (o.content = ''), | |||
|  |                         'text' === e.tokens[s.token - 1].type && | |||
|  |                           '~' === e.tokens[s.token - 1].content && | |||
|  |                           i.push(s.token - 1)) | |||
|  |                   for (; i.length; ) { | |||
|  |                     for ( | |||
|  |                       r = i.pop(), t = r + 1; | |||
|  |                       t < e.tokens.length && 's_close' === e.tokens[t].type; | |||
|  | 
 | |||
|  |                     ) | |||
|  |                       t++ | |||
|  |                     t--, | |||
|  |                       r !== t && | |||
|  |                         ((o = e.tokens[t]), | |||
|  |                         (e.tokens[t] = e.tokens[r]), | |||
|  |                         (e.tokens[r] = o)) | |||
|  |                   } | |||
|  |                 }) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           49: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 switch (e) { | |||
|  |                   case 10: | |||
|  |                   case 33: | |||
|  |                   case 35: | |||
|  |                   case 36: | |||
|  |                   case 37: | |||
|  |                   case 38: | |||
|  |                   case 42: | |||
|  |                   case 43: | |||
|  |                   case 45: | |||
|  |                   case 58: | |||
|  |                   case 60: | |||
|  |                   case 61: | |||
|  |                   case 62: | |||
|  |                   case 64: | |||
|  |                   case 91: | |||
|  |                   case 92: | |||
|  |                   case 93: | |||
|  |                   case 94: | |||
|  |                   case 95: | |||
|  |                   case 96: | |||
|  |                   case 123: | |||
|  |                   case 125: | |||
|  |                   case 126: | |||
|  |                     return !0 | |||
|  |                   default: | |||
|  |                     return !1 | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               r.exports = function(e, r) { | |||
|  |                 for (var t = e.pos; t < e.posMax && !n(e.src.charCodeAt(t)); ) | |||
|  |                   t++ | |||
|  |                 return ( | |||
|  |                   t !== e.pos && | |||
|  |                   (r || (e.pending += e.src.slice(e.pos, t)), (e.pos = t), !0) | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           50: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n = 0, | |||
|  |                   s = e.tokens, | |||
|  |                   o = e.tokens.length | |||
|  |                 for (r = t = 0; r < o; r++) | |||
|  |                   (n += s[r].nesting), | |||
|  |                     (s[r].level = n), | |||
|  |                     'text' === s[r].type && | |||
|  |                     r + 1 < o && | |||
|  |                     'text' === s[r + 1].type | |||
|  |                       ? (s[r + 1].content = s[r].content + s[r + 1].content) | |||
|  |                       : (r !== t && (s[t] = s[r]), t++) | |||
|  |                 r !== t && (s.length = t) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           51: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e, r, t) { | |||
|  |                 ;(this.type = e), | |||
|  |                   (this.tag = r), | |||
|  |                   (this.attrs = null), | |||
|  |                   (this.map = null), | |||
|  |                   (this.nesting = t), | |||
|  |                   (this.level = 0), | |||
|  |                   (this.children = null), | |||
|  |                   (this.content = ''), | |||
|  |                   (this.markup = ''), | |||
|  |                   (this.info = ''), | |||
|  |                   (this.meta = null), | |||
|  |                   (this.block = !1), | |||
|  |                   (this.hidden = !1) | |||
|  |               } | |||
|  | 
 | |||
|  |               ;(n.prototype.attrIndex = function(e) { | |||
|  |                 var r, t, n | |||
|  |                 if (!this.attrs) return -1 | |||
|  |                 for (r = this.attrs, t = 0, n = r.length; t < n; t++) | |||
|  |                   if (r[t][0] === e) return t | |||
|  |                 return -1 | |||
|  |               }), | |||
|  |                 (n.prototype.attrPush = function(e) { | |||
|  |                   this.attrs ? this.attrs.push(e) : (this.attrs = [e]) | |||
|  |                 }), | |||
|  |                 (n.prototype.attrSet = function(e, r) { | |||
|  |                   var t = this.attrIndex(e), | |||
|  |                     n = [e, r] | |||
|  |                   t < 0 ? this.attrPush(n) : (this.attrs[t] = n) | |||
|  |                 }), | |||
|  |                 (n.prototype.attrGet = function(e) { | |||
|  |                   var r = this.attrIndex(e), | |||
|  |                     t = null | |||
|  |                   return r >= 0 && (t = this.attrs[r][1]), t | |||
|  |                 }), | |||
|  |                 (n.prototype.attrJoin = function(e, r) { | |||
|  |                   var t = this.attrIndex(e) | |||
|  |                   t < 0 | |||
|  |                     ? this.attrPush([e, r]) | |||
|  |                     : (this.attrs[t][1] = this.attrs[t][1] + ' ' + r) | |||
|  |                 }), | |||
|  |                 (r.exports = n) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           52: [ | |||
|  |             function(r, t, n) { | |||
|  |               ;(function(r) { | |||
|  |                 !(function(s) { | |||
|  |                   function o(e) { | |||
|  |                     throw new RangeError(R[e]) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function i(e, r) { | |||
|  |                     for (var t = e.length, n = []; t--; ) n[t] = r(e[t]) | |||
|  |                     return n | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function a(e, r) { | |||
|  |                     var t = e.split('@'), | |||
|  |                       n = '' | |||
|  |                     t.length > 1 && ((n = t[0] + '@'), (e = t[1])), | |||
|  |                       (e = e.replace(T, '.')) | |||
|  |                     var s = e.split('.'), | |||
|  |                       o = i(s, r).join('.') | |||
|  |                     return n + o | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function c(e) { | |||
|  |                     for (var r, t, n = [], s = 0, o = e.length; s < o; ) | |||
|  |                       (r = e.charCodeAt(s++)), | |||
|  |                         r >= 55296 && r <= 56319 && s < o | |||
|  |                           ? ((t = e.charCodeAt(s++)), | |||
|  |                             56320 == (64512 & t) | |||
|  |                               ? n.push(((1023 & r) << 10) + (1023 & t) + 65536) | |||
|  |                               : (n.push(r), s--)) | |||
|  |                           : n.push(r) | |||
|  |                     return n | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function l(e) { | |||
|  |                     return i(e, function(e) { | |||
|  |                       var r = '' | |||
|  |                       return ( | |||
|  |                         e > 65535 && | |||
|  |                           ((e -= 65536), | |||
|  |                           (r += B(((e >>> 10) & 1023) | 55296)), | |||
|  |                           (e = 56320 | (1023 & e))), | |||
|  |                         (r += B(e)) | |||
|  |                       ) | |||
|  |                     }).join('') | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function u(e) { | |||
|  |                     return e - 48 < 10 | |||
|  |                       ? e - 22 | |||
|  |                       : e - 65 < 26 | |||
|  |                       ? e - 65 | |||
|  |                       : e - 97 < 26 | |||
|  |                       ? e - 97 | |||
|  |                       : C | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function p(e, r) { | |||
|  |                     return e + 22 + 75 * (e < 26) - ((0 != r) << 5) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function h(e, r, t) { | |||
|  |                     var n = 0 | |||
|  |                     for ( | |||
|  |                       e = t ? I(e / q) : e >> 1, e += I(e / r); | |||
|  |                       e > (M * w) >> 1; | |||
|  |                       n += C | |||
|  |                     ) | |||
|  |                       e = I(e / M) | |||
|  |                     return I(n + ((M + 1) * e) / (e + D)) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function f(e) { | |||
|  |                     var r, | |||
|  |                       t, | |||
|  |                       n, | |||
|  |                       s, | |||
|  |                       i, | |||
|  |                       a, | |||
|  |                       c, | |||
|  |                       p, | |||
|  |                       f, | |||
|  |                       d, | |||
|  |                       m = [], | |||
|  |                       _ = e.length, | |||
|  |                       g = 0, | |||
|  |                       k = S, | |||
|  |                       b = E | |||
|  |                     for ( | |||
|  |                       t = e.lastIndexOf(F), t < 0 && (t = 0), n = 0; | |||
|  |                       n < t; | |||
|  |                       ++n | |||
|  |                     ) | |||
|  |                       e.charCodeAt(n) >= 128 && o('not-basic'), | |||
|  |                         m.push(e.charCodeAt(n)) | |||
|  |                     for (s = t > 0 ? t + 1 : 0; s < _; ) { | |||
|  |                       for ( | |||
|  |                         i = g, a = 1, c = C; | |||
|  |                         s >= _ && o('invalid-input'), | |||
|  |                           (p = u(e.charCodeAt(s++))), | |||
|  |                           (p >= C || p > I((y - g) / a)) && o('overflow'), | |||
|  |                           (g += p * a), | |||
|  |                           (f = c <= b ? A : c >= b + w ? w : c - b), | |||
|  |                           !(p < f); | |||
|  |                         c += C | |||
|  |                       ) | |||
|  |                         (d = C - f), a > I(y / d) && o('overflow'), (a *= d) | |||
|  |                       ;(r = m.length + 1), | |||
|  |                         (b = h(g - i, r, 0 == i)), | |||
|  |                         I(g / r) > y - k && o('overflow'), | |||
|  |                         (k += I(g / r)), | |||
|  |                         (g %= r), | |||
|  |                         m.splice(g++, 0, k) | |||
|  |                     } | |||
|  |                     return l(m) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function d(e) { | |||
|  |                     var r, | |||
|  |                       t, | |||
|  |                       n, | |||
|  |                       s, | |||
|  |                       i, | |||
|  |                       a, | |||
|  |                       l, | |||
|  |                       u, | |||
|  |                       f, | |||
|  |                       d, | |||
|  |                       m, | |||
|  |                       _, | |||
|  |                       g, | |||
|  |                       k, | |||
|  |                       b, | |||
|  |                       v = [] | |||
|  |                     for ( | |||
|  |                       e = c(e), _ = e.length, r = S, t = 0, i = E, a = 0; | |||
|  |                       a < _; | |||
|  |                       ++a | |||
|  |                     ) | |||
|  |                       (m = e[a]), m < 128 && v.push(B(m)) | |||
|  |                     for (n = s = v.length, s && v.push(F); n < _; ) { | |||
|  |                       for (l = y, a = 0; a < _; ++a) | |||
|  |                         (m = e[a]), m >= r && m < l && (l = m) | |||
|  |                       for ( | |||
|  |                         g = n + 1, | |||
|  |                           l - r > I((y - t) / g) && o('overflow'), | |||
|  |                           t += (l - r) * g, | |||
|  |                           r = l, | |||
|  |                           a = 0; | |||
|  |                         a < _; | |||
|  |                         ++a | |||
|  |                       ) | |||
|  |                         if ( | |||
|  |                           ((m = e[a]), | |||
|  |                           m < r && ++t > y && o('overflow'), | |||
|  |                           m == r) | |||
|  |                         ) { | |||
|  |                           for ( | |||
|  |                             u = t, f = C; | |||
|  |                             (d = f <= i ? A : f >= i + w ? w : f - i), !(u < d); | |||
|  |                             f += C | |||
|  |                           ) | |||
|  |                             (b = u - d), | |||
|  |                               (k = C - d), | |||
|  |                               v.push(B(p(d + (b % k), 0))), | |||
|  |                               (u = I(b / k)) | |||
|  |                           v.push(B(p(u, 0))), | |||
|  |                             (i = h(t, g, n == s)), | |||
|  |                             (t = 0), | |||
|  |                             ++n | |||
|  |                         } | |||
|  |                       ++t, ++r | |||
|  |                     } | |||
|  |                     return v.join('') | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function m(e) { | |||
|  |                     return a(e, function(e) { | |||
|  |                       return z.test(e) ? f(e.slice(4).toLowerCase()) : e | |||
|  |                     }) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   function _(e) { | |||
|  |                     return a(e, function(e) { | |||
|  |                       return L.test(e) ? 'xn--' + d(e) : e | |||
|  |                     }) | |||
|  |                   } | |||
|  | 
 | |||
|  |                   var g = 'object' == typeof n && n && !n.nodeType && n, | |||
|  |                     k = 'object' == typeof t && t && !t.nodeType && t, | |||
|  |                     b = 'object' == typeof r && r | |||
|  |                   ;(b.global !== b && b.window !== b && b.self !== b) || (s = b) | |||
|  |                   var v, | |||
|  |                     x, | |||
|  |                     y = 2147483647, | |||
|  |                     C = 36, | |||
|  |                     A = 1, | |||
|  |                     w = 26, | |||
|  |                     D = 38, | |||
|  |                     q = 700, | |||
|  |                     E = 72, | |||
|  |                     S = 128, | |||
|  |                     F = '-', | |||
|  |                     z = /^xn--/, | |||
|  |                     L = /[^\x20-\x7E]/, | |||
|  |                     T = /[\x2E\u3002\uFF0E\uFF61]/g, | |||
|  |                     R = { | |||
|  |                       overflow: | |||
|  |                         'Overflow: input needs wider integers to process', | |||
|  |                       'not-basic': | |||
|  |                         'Illegal input >= 0x80 (not a basic code point)', | |||
|  |                       'invalid-input': 'Invalid input' | |||
|  |                     }, | |||
|  |                     M = C - A, | |||
|  |                     I = Math.floor, | |||
|  |                     B = String.fromCharCode | |||
|  |                   if ( | |||
|  |                     ((v = { | |||
|  |                       version: '1.4.1', | |||
|  |                       ucs2: { decode: c, encode: l }, | |||
|  |                       decode: f, | |||
|  |                       encode: d, | |||
|  |                       toASCII: _, | |||
|  |                       toUnicode: m | |||
|  |                     }), | |||
|  |                     'function' == typeof e && 'object' == typeof e.amd && e.amd) | |||
|  |                   ) | |||
|  |                     e('punycode', function() { | |||
|  |                       return v | |||
|  |                     }) | |||
|  |                   else if (g && k) | |||
|  |                     if (t.exports == g) k.exports = v | |||
|  |                     else for (x in v) v.hasOwnProperty(x) && (g[x] = v[x]) | |||
|  |                   else s.punycode = v | |||
|  |                 })(this) | |||
|  |               }.call( | |||
|  |                 this, | |||
|  |                 'undefined' != typeof global | |||
|  |                   ? global | |||
|  |                   : 'undefined' != typeof self | |||
|  |                   ? self | |||
|  |                   : 'undefined' != typeof window | |||
|  |                   ? window | |||
|  |                   : {} | |||
|  |               )) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           53: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = { | |||
|  |                 Aacute: 'Á', | |||
|  |                 aacute: 'á', | |||
|  |                 Abreve: 'Ă', | |||
|  |                 abreve: 'ă', | |||
|  |                 ac: '∾', | |||
|  |                 acd: '∿', | |||
|  |                 acE: '∾̳', | |||
|  |                 Acirc: 'Â', | |||
|  |                 acirc: 'â', | |||
|  |                 acute: '´', | |||
|  |                 Acy: 'А', | |||
|  |                 acy: 'а', | |||
|  |                 AElig: 'Æ', | |||
|  |                 aelig: 'æ', | |||
|  |                 af: '', | |||
|  |                 Afr: '𝔄', | |||
|  |                 afr: '𝔞', | |||
|  |                 Agrave: 'À', | |||
|  |                 agrave: 'à', | |||
|  |                 alefsym: 'ℵ', | |||
|  |                 aleph: 'ℵ', | |||
|  |                 Alpha: 'Α', | |||
|  |                 alpha: 'α', | |||
|  |                 Amacr: 'Ā', | |||
|  |                 amacr: 'ā', | |||
|  |                 amalg: '⨿', | |||
|  |                 amp: '&', | |||
|  |                 AMP: '&', | |||
|  |                 andand: '⩕', | |||
|  |                 And: '⩓', | |||
|  |                 and: '∧', | |||
|  |                 andd: '⩜', | |||
|  |                 andslope: '⩘', | |||
|  |                 andv: '⩚', | |||
|  |                 ang: '∠', | |||
|  |                 ange: '⦤', | |||
|  |                 angle: '∠', | |||
|  |                 angmsdaa: '⦨', | |||
|  |                 angmsdab: '⦩', | |||
|  |                 angmsdac: '⦪', | |||
|  |                 angmsdad: '⦫', | |||
|  |                 angmsdae: '⦬', | |||
|  |                 angmsdaf: '⦭', | |||
|  |                 angmsdag: '⦮', | |||
|  |                 angmsdah: '⦯', | |||
|  |                 angmsd: '∡', | |||
|  |                 angrt: '∟', | |||
|  |                 angrtvb: '⊾', | |||
|  |                 angrtvbd: '⦝', | |||
|  |                 angsph: '∢', | |||
|  |                 angst: 'Å', | |||
|  |                 angzarr: '⍼', | |||
|  |                 Aogon: 'Ą', | |||
|  |                 aogon: 'ą', | |||
|  |                 Aopf: '𝔸', | |||
|  |                 aopf: '𝕒', | |||
|  |                 apacir: '⩯', | |||
|  |                 ap: '≈', | |||
|  |                 apE: '⩰', | |||
|  |                 ape: '≊', | |||
|  |                 apid: '≋', | |||
|  |                 apos: "'", | |||
|  |                 ApplyFunction: '', | |||
|  |                 approx: '≈', | |||
|  |                 approxeq: '≊', | |||
|  |                 Aring: 'Å', | |||
|  |                 aring: 'å', | |||
|  |                 Ascr: '𝒜', | |||
|  |                 ascr: '𝒶', | |||
|  |                 Assign: '≔', | |||
|  |                 ast: '*', | |||
|  |                 asymp: '≈', | |||
|  |                 asympeq: '≍', | |||
|  |                 Atilde: 'Ã', | |||
|  |                 atilde: 'ã', | |||
|  |                 Auml: 'Ä', | |||
|  |                 auml: 'ä', | |||
|  |                 awconint: '∳', | |||
|  |                 awint: '⨑', | |||
|  |                 backcong: '≌', | |||
|  |                 backepsilon: '϶', | |||
|  |                 backprime: '‵', | |||
|  |                 backsim: '∽', | |||
|  |                 backsimeq: '⋍', | |||
|  |                 Backslash: '∖', | |||
|  |                 Barv: '⫧', | |||
|  |                 barvee: '⊽', | |||
|  |                 barwed: '⌅', | |||
|  |                 Barwed: '⌆', | |||
|  |                 barwedge: '⌅', | |||
|  |                 bbrk: '⎵', | |||
|  |                 bbrktbrk: '⎶', | |||
|  |                 bcong: '≌', | |||
|  |                 Bcy: 'Б', | |||
|  |                 bcy: 'б', | |||
|  |                 bdquo: '„', | |||
|  |                 becaus: '∵', | |||
|  |                 because: '∵', | |||
|  |                 Because: '∵', | |||
|  |                 bemptyv: '⦰', | |||
|  |                 bepsi: '϶', | |||
|  |                 bernou: 'ℬ', | |||
|  |                 Bernoullis: 'ℬ', | |||
|  |                 Beta: 'Β', | |||
|  |                 beta: 'β', | |||
|  |                 beth: 'ℶ', | |||
|  |                 between: '≬', | |||
|  |                 Bfr: '𝔅', | |||
|  |                 bfr: '𝔟', | |||
|  |                 bigcap: '⋂', | |||
|  |                 bigcirc: '◯', | |||
|  |                 bigcup: '⋃', | |||
|  |                 bigodot: '⨀', | |||
|  |                 bigoplus: '⨁', | |||
|  |                 bigotimes: '⨂', | |||
|  |                 bigsqcup: '⨆', | |||
|  |                 bigstar: '★', | |||
|  |                 bigtriangledown: '▽', | |||
|  |                 bigtriangleup: '△', | |||
|  |                 biguplus: '⨄', | |||
|  |                 bigvee: '⋁', | |||
|  |                 bigwedge: '⋀', | |||
|  |                 bkarow: '⤍', | |||
|  |                 blacklozenge: '⧫', | |||
|  |                 blacksquare: '▪', | |||
|  |                 blacktriangle: '▴', | |||
|  |                 blacktriangledown: '▾', | |||
|  |                 blacktriangleleft: '◂', | |||
|  |                 blacktriangleright: '▸', | |||
|  |                 blank: '␣', | |||
|  |                 blk12: '▒', | |||
|  |                 blk14: '░', | |||
|  |                 blk34: '▓', | |||
|  |                 block: '█', | |||
|  |                 bne: '=⃥', | |||
|  |                 bnequiv: '≡⃥', | |||
|  |                 bNot: '⫭', | |||
|  |                 bnot: '⌐', | |||
|  |                 Bopf: '𝔹', | |||
|  |                 bopf: '𝕓', | |||
|  |                 bot: '⊥', | |||
|  |                 bottom: '⊥', | |||
|  |                 bowtie: '⋈', | |||
|  |                 boxbox: '⧉', | |||
|  |                 boxdl: '┐', | |||
|  |                 boxdL: '╕', | |||
|  |                 boxDl: '╖', | |||
|  |                 boxDL: '╗', | |||
|  |                 boxdr: '┌', | |||
|  |                 boxdR: '╒', | |||
|  |                 boxDr: '╓', | |||
|  |                 boxDR: '╔', | |||
|  |                 boxh: '─', | |||
|  |                 boxH: '═', | |||
|  |                 boxhd: '┬', | |||
|  |                 boxHd: '╤', | |||
|  |                 boxhD: '╥', | |||
|  |                 boxHD: '╦', | |||
|  |                 boxhu: '┴', | |||
|  |                 boxHu: '╧', | |||
|  |                 boxhU: '╨', | |||
|  |                 boxHU: '╩', | |||
|  |                 boxminus: '⊟', | |||
|  |                 boxplus: '⊞', | |||
|  |                 boxtimes: '⊠', | |||
|  |                 boxul: '┘', | |||
|  |                 boxuL: '╛', | |||
|  |                 boxUl: '╜', | |||
|  |                 boxUL: '╝', | |||
|  |                 boxur: '└', | |||
|  |                 boxuR: '╘', | |||
|  |                 boxUr: '╙', | |||
|  |                 boxUR: '╚', | |||
|  |                 boxv: '│', | |||
|  |                 boxV: '║', | |||
|  |                 boxvh: '┼', | |||
|  |                 boxvH: '╪', | |||
|  |                 boxVh: '╫', | |||
|  |                 boxVH: '╬', | |||
|  |                 boxvl: '┤', | |||
|  |                 boxvL: '╡', | |||
|  |                 boxVl: '╢', | |||
|  |                 boxVL: '╣', | |||
|  |                 boxvr: '├', | |||
|  |                 boxvR: '╞', | |||
|  |                 boxVr: '╟', | |||
|  |                 boxVR: '╠', | |||
|  |                 bprime: '‵', | |||
|  |                 breve: '˘', | |||
|  |                 Breve: '˘', | |||
|  |                 brvbar: '¦', | |||
|  |                 bscr: '𝒷', | |||
|  |                 Bscr: 'ℬ', | |||
|  |                 bsemi: '⁏', | |||
|  |                 bsim: '∽', | |||
|  |                 bsime: '⋍', | |||
|  |                 bsolb: '⧅', | |||
|  |                 bsol: '\\', | |||
|  |                 bsolhsub: '⟈', | |||
|  |                 bull: '•', | |||
|  |                 bullet: '•', | |||
|  |                 bump: '≎', | |||
|  |                 bumpE: '⪮', | |||
|  |                 bumpe: '≏', | |||
|  |                 Bumpeq: '≎', | |||
|  |                 bumpeq: '≏', | |||
|  |                 Cacute: 'Ć', | |||
|  |                 cacute: 'ć', | |||
|  |                 capand: '⩄', | |||
|  |                 capbrcup: '⩉', | |||
|  |                 capcap: '⩋', | |||
|  |                 cap: '∩', | |||
|  |                 Cap: '⋒', | |||
|  |                 capcup: '⩇', | |||
|  |                 capdot: '⩀', | |||
|  |                 CapitalDifferentialD: 'ⅅ', | |||
|  |                 caps: '∩︀', | |||
|  |                 caret: '⁁', | |||
|  |                 caron: 'ˇ', | |||
|  |                 Cayleys: 'ℭ', | |||
|  |                 ccaps: '⩍', | |||
|  |                 Ccaron: 'Č', | |||
|  |                 ccaron: 'č', | |||
|  |                 Ccedil: 'Ç', | |||
|  |                 ccedil: 'ç', | |||
|  |                 Ccirc: 'Ĉ', | |||
|  |                 ccirc: 'ĉ', | |||
|  |                 Cconint: '∰', | |||
|  |                 ccups: '⩌', | |||
|  |                 ccupssm: '⩐', | |||
|  |                 Cdot: 'Ċ', | |||
|  |                 cdot: 'ċ', | |||
|  |                 cedil: '¸', | |||
|  |                 Cedilla: '¸', | |||
|  |                 cemptyv: '⦲', | |||
|  |                 cent: '¢', | |||
|  |                 centerdot: '·', | |||
|  |                 CenterDot: '·', | |||
|  |                 cfr: '𝔠', | |||
|  |                 Cfr: 'ℭ', | |||
|  |                 CHcy: 'Ч', | |||
|  |                 chcy: 'ч', | |||
|  |                 check: '✓', | |||
|  |                 checkmark: '✓', | |||
|  |                 Chi: 'Χ', | |||
|  |                 chi: 'χ', | |||
|  |                 circ: 'ˆ', | |||
|  |                 circeq: '≗', | |||
|  |                 circlearrowleft: '↺', | |||
|  |                 circlearrowright: '↻', | |||
|  |                 circledast: '⊛', | |||
|  |                 circledcirc: '⊚', | |||
|  |                 circleddash: '⊝', | |||
|  |                 CircleDot: '⊙', | |||
|  |                 circledR: '®', | |||
|  |                 circledS: 'Ⓢ', | |||
|  |                 CircleMinus: '⊖', | |||
|  |                 CirclePlus: '⊕', | |||
|  |                 CircleTimes: '⊗', | |||
|  |                 cir: '○', | |||
|  |                 cirE: '⧃', | |||
|  |                 cire: '≗', | |||
|  |                 cirfnint: '⨐', | |||
|  |                 cirmid: '⫯', | |||
|  |                 cirscir: '⧂', | |||
|  |                 ClockwiseContourIntegral: '∲', | |||
|  |                 CloseCurlyDoubleQuote: '”', | |||
|  |                 CloseCurlyQuote: '’', | |||
|  |                 clubs: '♣', | |||
|  |                 clubsuit: '♣', | |||
|  |                 colon: ':', | |||
|  |                 Colon: '∷', | |||
|  |                 Colone: '⩴', | |||
|  |                 colone: '≔', | |||
|  |                 coloneq: '≔', | |||
|  |                 comma: ',', | |||
|  |                 commat: '@', | |||
|  |                 comp: '∁', | |||
|  |                 compfn: '∘', | |||
|  |                 complement: '∁', | |||
|  |                 complexes: 'ℂ', | |||
|  |                 cong: '≅', | |||
|  |                 congdot: '⩭', | |||
|  |                 Congruent: '≡', | |||
|  |                 conint: '∮', | |||
|  |                 Conint: '∯', | |||
|  |                 ContourIntegral: '∮', | |||
|  |                 copf: '𝕔', | |||
|  |                 Copf: 'ℂ', | |||
|  |                 coprod: '∐', | |||
|  |                 Coproduct: '∐', | |||
|  |                 copy: '©', | |||
|  |                 COPY: '©', | |||
|  |                 copysr: '℗', | |||
|  |                 CounterClockwiseContourIntegral: '∳', | |||
|  |                 crarr: '↵', | |||
|  |                 cross: '✗', | |||
|  |                 Cross: '⨯', | |||
|  |                 Cscr: '𝒞', | |||
|  |                 cscr: '𝒸', | |||
|  |                 csub: '⫏', | |||
|  |                 csube: '⫑', | |||
|  |                 csup: '⫐', | |||
|  |                 csupe: '⫒', | |||
|  |                 ctdot: '⋯', | |||
|  |                 cudarrl: '⤸', | |||
|  |                 cudarrr: '⤵', | |||
|  |                 cuepr: '⋞', | |||
|  |                 cuesc: '⋟', | |||
|  |                 cularr: '↶', | |||
|  |                 cularrp: '⤽', | |||
|  |                 cupbrcap: '⩈', | |||
|  |                 cupcap: '⩆', | |||
|  |                 CupCap: '≍', | |||
|  |                 cup: '∪', | |||
|  |                 Cup: '⋓', | |||
|  |                 cupcup: '⩊', | |||
|  |                 cupdot: '⊍', | |||
|  |                 cupor: '⩅', | |||
|  |                 cups: '∪︀', | |||
|  |                 curarr: '↷', | |||
|  |                 curarrm: '⤼', | |||
|  |                 curlyeqprec: '⋞', | |||
|  |                 curlyeqsucc: '⋟', | |||
|  |                 curlyvee: '⋎', | |||
|  |                 curlywedge: '⋏', | |||
|  |                 curren: '¤', | |||
|  |                 curvearrowleft: '↶', | |||
|  |                 curvearrowright: '↷', | |||
|  |                 cuvee: '⋎', | |||
|  |                 cuwed: '⋏', | |||
|  |                 cwconint: '∲', | |||
|  |                 cwint: '∱', | |||
|  |                 cylcty: '⌭', | |||
|  |                 dagger: '†', | |||
|  |                 Dagger: '‡', | |||
|  |                 daleth: 'ℸ', | |||
|  |                 darr: '↓', | |||
|  |                 Darr: '↡', | |||
|  |                 dArr: '⇓', | |||
|  |                 dash: '‐', | |||
|  |                 Dashv: '⫤', | |||
|  |                 dashv: '⊣', | |||
|  |                 dbkarow: '⤏', | |||
|  |                 dblac: '˝', | |||
|  |                 Dcaron: 'Ď', | |||
|  |                 dcaron: 'ď', | |||
|  |                 Dcy: 'Д', | |||
|  |                 dcy: 'д', | |||
|  |                 ddagger: '‡', | |||
|  |                 ddarr: '⇊', | |||
|  |                 DD: 'ⅅ', | |||
|  |                 dd: 'ⅆ', | |||
|  |                 DDotrahd: '⤑', | |||
|  |                 ddotseq: '⩷', | |||
|  |                 deg: '°', | |||
|  |                 Del: '∇', | |||
|  |                 Delta: 'Δ', | |||
|  |                 delta: 'δ', | |||
|  |                 demptyv: '⦱', | |||
|  |                 dfisht: '⥿', | |||
|  |                 Dfr: '𝔇', | |||
|  |                 dfr: '𝔡', | |||
|  |                 dHar: '⥥', | |||
|  |                 dharl: '⇃', | |||
|  |                 dharr: '⇂', | |||
|  |                 DiacriticalAcute: '´', | |||
|  |                 DiacriticalDot: '˙', | |||
|  |                 DiacriticalDoubleAcute: '˝', | |||
|  |                 DiacriticalGrave: '`', | |||
|  |                 DiacriticalTilde: '˜', | |||
|  |                 diam: '⋄', | |||
|  |                 diamond: '⋄', | |||
|  |                 Diamond: '⋄', | |||
|  |                 diamondsuit: '♦', | |||
|  |                 diams: '♦', | |||
|  |                 die: '¨', | |||
|  |                 DifferentialD: 'ⅆ', | |||
|  |                 digamma: 'ϝ', | |||
|  |                 disin: '⋲', | |||
|  |                 div: '÷', | |||
|  |                 divide: '÷', | |||
|  |                 divideontimes: '⋇', | |||
|  |                 divonx: '⋇', | |||
|  |                 DJcy: 'Ђ', | |||
|  |                 djcy: 'ђ', | |||
|  |                 dlcorn: '⌞', | |||
|  |                 dlcrop: '⌍', | |||
|  |                 dollar: '$', | |||
|  |                 Dopf: '𝔻', | |||
|  |                 dopf: '𝕕', | |||
|  |                 Dot: '¨', | |||
|  |                 dot: '˙', | |||
|  |                 DotDot: '⃜', | |||
|  |                 doteq: '≐', | |||
|  |                 doteqdot: '≑', | |||
|  |                 DotEqual: '≐', | |||
|  |                 dotminus: '∸', | |||
|  |                 dotplus: '∔', | |||
|  |                 dotsquare: '⊡', | |||
|  |                 doublebarwedge: '⌆', | |||
|  |                 DoubleContourIntegral: '∯', | |||
|  |                 DoubleDot: '¨', | |||
|  |                 DoubleDownArrow: '⇓', | |||
|  |                 DoubleLeftArrow: '⇐', | |||
|  |                 DoubleLeftRightArrow: '⇔', | |||
|  |                 DoubleLeftTee: '⫤', | |||
|  |                 DoubleLongLeftArrow: '⟸', | |||
|  |                 DoubleLongLeftRightArrow: '⟺', | |||
|  |                 DoubleLongRightArrow: '⟹', | |||
|  |                 DoubleRightArrow: '⇒', | |||
|  |                 DoubleRightTee: '⊨', | |||
|  |                 DoubleUpArrow: '⇑', | |||
|  |                 DoubleUpDownArrow: '⇕', | |||
|  |                 DoubleVerticalBar: '∥', | |||
|  |                 DownArrowBar: '⤓', | |||
|  |                 downarrow: '↓', | |||
|  |                 DownArrow: '↓', | |||
|  |                 Downarrow: '⇓', | |||
|  |                 DownArrowUpArrow: '⇵', | |||
|  |                 DownBreve: '̑', | |||
|  |                 downdownarrows: '⇊', | |||
|  |                 downharpoonleft: '⇃', | |||
|  |                 downharpoonright: '⇂', | |||
|  |                 DownLeftRightVector: '⥐', | |||
|  |                 DownLeftTeeVector: '⥞', | |||
|  |                 DownLeftVectorBar: '⥖', | |||
|  |                 DownLeftVector: '↽', | |||
|  |                 DownRightTeeVector: '⥟', | |||
|  |                 DownRightVectorBar: '⥗', | |||
|  |                 DownRightVector: '⇁', | |||
|  |                 DownTeeArrow: '↧', | |||
|  |                 DownTee: '⊤', | |||
|  |                 drbkarow: '⤐', | |||
|  |                 drcorn: '⌟', | |||
|  |                 drcrop: '⌌', | |||
|  |                 Dscr: '𝒟', | |||
|  |                 dscr: '𝒹', | |||
|  |                 DScy: 'Ѕ', | |||
|  |                 dscy: 'ѕ', | |||
|  |                 dsol: '⧶', | |||
|  |                 Dstrok: 'Đ', | |||
|  |                 dstrok: 'đ', | |||
|  |                 dtdot: '⋱', | |||
|  |                 dtri: '▿', | |||
|  |                 dtrif: '▾', | |||
|  |                 duarr: '⇵', | |||
|  |                 duhar: '⥯', | |||
|  |                 dwangle: '⦦', | |||
|  |                 DZcy: 'Џ', | |||
|  |                 dzcy: 'џ', | |||
|  |                 dzigrarr: '⟿', | |||
|  |                 Eacute: 'É', | |||
|  |                 eacute: 'é', | |||
|  |                 easter: '⩮', | |||
|  |                 Ecaron: 'Ě', | |||
|  |                 ecaron: 'ě', | |||
|  |                 Ecirc: 'Ê', | |||
|  |                 ecirc: 'ê', | |||
|  |                 ecir: '≖', | |||
|  |                 ecolon: '≕', | |||
|  |                 Ecy: 'Э', | |||
|  |                 ecy: 'э', | |||
|  |                 eDDot: '⩷', | |||
|  |                 Edot: 'Ė', | |||
|  |                 edot: 'ė', | |||
|  |                 eDot: '≑', | |||
|  |                 ee: 'ⅇ', | |||
|  |                 efDot: '≒', | |||
|  |                 Efr: '𝔈', | |||
|  |                 efr: '𝔢', | |||
|  |                 eg: '⪚', | |||
|  |                 Egrave: 'È', | |||
|  |                 egrave: 'è', | |||
|  |                 egs: '⪖', | |||
|  |                 egsdot: '⪘', | |||
|  |                 el: '⪙', | |||
|  |                 Element: '∈', | |||
|  |                 elinters: '⏧', | |||
|  |                 ell: 'ℓ', | |||
|  |                 els: '⪕', | |||
|  |                 elsdot: '⪗', | |||
|  |                 Emacr: 'Ē', | |||
|  |                 emacr: 'ē', | |||
|  |                 empty: '∅', | |||
|  |                 emptyset: '∅', | |||
|  |                 EmptySmallSquare: '◻', | |||
|  |                 emptyv: '∅', | |||
|  |                 EmptyVerySmallSquare: '▫', | |||
|  |                 emsp13: ' ', | |||
|  |                 emsp14: ' ', | |||
|  |                 emsp: ' ', | |||
|  |                 ENG: 'Ŋ', | |||
|  |                 eng: 'ŋ', | |||
|  |                 ensp: ' ', | |||
|  |                 Eogon: 'Ę', | |||
|  |                 eogon: 'ę', | |||
|  |                 Eopf: '𝔼', | |||
|  |                 eopf: '𝕖', | |||
|  |                 epar: '⋕', | |||
|  |                 eparsl: '⧣', | |||
|  |                 eplus: '⩱', | |||
|  |                 epsi: 'ε', | |||
|  |                 Epsilon: 'Ε', | |||
|  |                 epsilon: 'ε', | |||
|  |                 epsiv: 'ϵ', | |||
|  |                 eqcirc: '≖', | |||
|  |                 eqcolon: '≕', | |||
|  |                 eqsim: '≂', | |||
|  |                 eqslantgtr: '⪖', | |||
|  |                 eqslantless: '⪕', | |||
|  |                 Equal: '⩵', | |||
|  |                 equals: '=', | |||
|  |                 EqualTilde: '≂', | |||
|  |                 equest: '≟', | |||
|  |                 Equilibrium: '⇌', | |||
|  |                 equiv: '≡', | |||
|  |                 equivDD: '⩸', | |||
|  |                 eqvparsl: '⧥', | |||
|  |                 erarr: '⥱', | |||
|  |                 erDot: '≓', | |||
|  |                 escr: 'ℯ', | |||
|  |                 Escr: 'ℰ', | |||
|  |                 esdot: '≐', | |||
|  |                 Esim: '⩳', | |||
|  |                 esim: '≂', | |||
|  |                 Eta: 'Η', | |||
|  |                 eta: 'η', | |||
|  |                 ETH: 'Ð', | |||
|  |                 eth: 'ð', | |||
|  |                 Euml: 'Ë', | |||
|  |                 euml: 'ë', | |||
|  |                 euro: '€', | |||
|  |                 excl: '!', | |||
|  |                 exist: '∃', | |||
|  |                 Exists: '∃', | |||
|  |                 expectation: 'ℰ', | |||
|  |                 exponentiale: 'ⅇ', | |||
|  |                 ExponentialE: 'ⅇ', | |||
|  |                 fallingdotseq: '≒', | |||
|  |                 Fcy: 'Ф', | |||
|  |                 fcy: 'ф', | |||
|  |                 female: '♀', | |||
|  |                 ffilig: 'ffi', | |||
|  |                 fflig: 'ff', | |||
|  |                 ffllig: 'ffl', | |||
|  |                 Ffr: '𝔉', | |||
|  |                 ffr: '𝔣', | |||
|  |                 filig: 'fi', | |||
|  |                 FilledSmallSquare: '◼', | |||
|  |                 FilledVerySmallSquare: '▪', | |||
|  |                 fjlig: 'fj', | |||
|  |                 flat: '♭', | |||
|  |                 fllig: 'fl', | |||
|  |                 fltns: '▱', | |||
|  |                 fnof: 'ƒ', | |||
|  |                 Fopf: '𝔽', | |||
|  |                 fopf: '𝕗', | |||
|  |                 forall: '∀', | |||
|  |                 ForAll: '∀', | |||
|  |                 fork: '⋔', | |||
|  |                 forkv: '⫙', | |||
|  |                 Fouriertrf: 'ℱ', | |||
|  |                 fpartint: '⨍', | |||
|  |                 frac12: '½', | |||
|  |                 frac13: '⅓', | |||
|  |                 frac14: '¼', | |||
|  |                 frac15: '⅕', | |||
|  |                 frac16: '⅙', | |||
|  |                 frac18: '⅛', | |||
|  |                 frac23: '⅔', | |||
|  |                 frac25: '⅖', | |||
|  |                 frac34: '¾', | |||
|  |                 frac35: '⅗', | |||
|  |                 frac38: '⅜', | |||
|  |                 frac45: '⅘', | |||
|  |                 frac56: '⅚', | |||
|  |                 frac58: '⅝', | |||
|  |                 frac78: '⅞', | |||
|  |                 frasl: '⁄', | |||
|  |                 frown: '⌢', | |||
|  |                 fscr: '𝒻', | |||
|  |                 Fscr: 'ℱ', | |||
|  |                 gacute: 'ǵ', | |||
|  |                 Gamma: 'Γ', | |||
|  |                 gamma: 'γ', | |||
|  |                 Gammad: 'Ϝ', | |||
|  |                 gammad: 'ϝ', | |||
|  |                 gap: '⪆', | |||
|  |                 Gbreve: 'Ğ', | |||
|  |                 gbreve: 'ğ', | |||
|  |                 Gcedil: 'Ģ', | |||
|  |                 Gcirc: 'Ĝ', | |||
|  |                 gcirc: 'ĝ', | |||
|  |                 Gcy: 'Г', | |||
|  |                 gcy: 'г', | |||
|  |                 Gdot: 'Ġ', | |||
|  |                 gdot: 'ġ', | |||
|  |                 ge: '≥', | |||
|  |                 gE: '≧', | |||
|  |                 gEl: '⪌', | |||
|  |                 gel: '⋛', | |||
|  |                 geq: '≥', | |||
|  |                 geqq: '≧', | |||
|  |                 geqslant: '⩾', | |||
|  |                 gescc: '⪩', | |||
|  |                 ges: '⩾', | |||
|  |                 gesdot: '⪀', | |||
|  |                 gesdoto: '⪂', | |||
|  |                 gesdotol: '⪄', | |||
|  |                 gesl: '⋛︀', | |||
|  |                 gesles: '⪔', | |||
|  |                 Gfr: '𝔊', | |||
|  |                 gfr: '𝔤', | |||
|  |                 gg: '≫', | |||
|  |                 Gg: '⋙', | |||
|  |                 ggg: '⋙', | |||
|  |                 gimel: 'ℷ', | |||
|  |                 GJcy: 'Ѓ', | |||
|  |                 gjcy: 'ѓ', | |||
|  |                 gla: '⪥', | |||
|  |                 gl: '≷', | |||
|  |                 glE: '⪒', | |||
|  |                 glj: '⪤', | |||
|  |                 gnap: '⪊', | |||
|  |                 gnapprox: '⪊', | |||
|  |                 gne: '⪈', | |||
|  |                 gnE: '≩', | |||
|  |                 gneq: '⪈', | |||
|  |                 gneqq: '≩', | |||
|  |                 gnsim: '⋧', | |||
|  |                 Gopf: '𝔾', | |||
|  |                 gopf: '𝕘', | |||
|  |                 grave: '`', | |||
|  |                 GreaterEqual: '≥', | |||
|  |                 GreaterEqualLess: '⋛', | |||
|  |                 GreaterFullEqual: '≧', | |||
|  |                 GreaterGreater: '⪢', | |||
|  |                 GreaterLess: '≷', | |||
|  |                 GreaterSlantEqual: '⩾', | |||
|  |                 GreaterTilde: '≳', | |||
|  |                 Gscr: '𝒢', | |||
|  |                 gscr: 'ℊ', | |||
|  |                 gsim: '≳', | |||
|  |                 gsime: '⪎', | |||
|  |                 gsiml: '⪐', | |||
|  |                 gtcc: '⪧', | |||
|  |                 gtcir: '⩺', | |||
|  |                 gt: '>', | |||
|  |                 GT: '>', | |||
|  |                 Gt: '≫', | |||
|  |                 gtdot: '⋗', | |||
|  |                 gtlPar: '⦕', | |||
|  |                 gtquest: '⩼', | |||
|  |                 gtrapprox: '⪆', | |||
|  |                 gtrarr: '⥸', | |||
|  |                 gtrdot: '⋗', | |||
|  |                 gtreqless: '⋛', | |||
|  |                 gtreqqless: '⪌', | |||
|  |                 gtrless: '≷', | |||
|  |                 gtrsim: '≳', | |||
|  |                 gvertneqq: '≩︀', | |||
|  |                 gvnE: '≩︀', | |||
|  |                 Hacek: 'ˇ', | |||
|  |                 hairsp: ' ', | |||
|  |                 half: '½', | |||
|  |                 hamilt: 'ℋ', | |||
|  |                 HARDcy: 'Ъ', | |||
|  |                 hardcy: 'ъ', | |||
|  |                 harrcir: '⥈', | |||
|  |                 harr: '↔', | |||
|  |                 hArr: '⇔', | |||
|  |                 harrw: '↭', | |||
|  |                 Hat: '^', | |||
|  |                 hbar: 'ℏ', | |||
|  |                 Hcirc: 'Ĥ', | |||
|  |                 hcirc: 'ĥ', | |||
|  |                 hearts: '♥', | |||
|  |                 heartsuit: '♥', | |||
|  |                 hellip: '…', | |||
|  |                 hercon: '⊹', | |||
|  |                 hfr: '𝔥', | |||
|  |                 Hfr: 'ℌ', | |||
|  |                 HilbertSpace: 'ℋ', | |||
|  |                 hksearow: '⤥', | |||
|  |                 hkswarow: '⤦', | |||
|  |                 hoarr: '⇿', | |||
|  |                 homtht: '∻', | |||
|  |                 hookleftarrow: '↩', | |||
|  |                 hookrightarrow: '↪', | |||
|  |                 hopf: '𝕙', | |||
|  |                 Hopf: 'ℍ', | |||
|  |                 horbar: '―', | |||
|  |                 HorizontalLine: '─', | |||
|  |                 hscr: '𝒽', | |||
|  |                 Hscr: 'ℋ', | |||
|  |                 hslash: 'ℏ', | |||
|  |                 Hstrok: 'Ħ', | |||
|  |                 hstrok: 'ħ', | |||
|  |                 HumpDownHump: '≎', | |||
|  |                 HumpEqual: '≏', | |||
|  |                 hybull: '⁃', | |||
|  |                 hyphen: '‐', | |||
|  |                 Iacute: 'Í', | |||
|  |                 iacute: 'í', | |||
|  |                 ic: '', | |||
|  |                 Icirc: 'Î', | |||
|  |                 icirc: 'î', | |||
|  |                 Icy: 'И', | |||
|  |                 icy: 'и', | |||
|  |                 Idot: 'İ', | |||
|  |                 IEcy: 'Е', | |||
|  |                 iecy: 'е', | |||
|  |                 iexcl: '¡', | |||
|  |                 iff: '⇔', | |||
|  |                 ifr: '𝔦', | |||
|  |                 Ifr: 'ℑ', | |||
|  |                 Igrave: 'Ì', | |||
|  |                 igrave: 'ì', | |||
|  |                 ii: 'ⅈ', | |||
|  |                 iiiint: '⨌', | |||
|  |                 iiint: '∭', | |||
|  |                 iinfin: '⧜', | |||
|  |                 iiota: '℩', | |||
|  |                 IJlig: 'IJ', | |||
|  |                 ijlig: 'ij', | |||
|  |                 Imacr: 'Ī', | |||
|  |                 imacr: 'ī', | |||
|  |                 image: 'ℑ', | |||
|  |                 ImaginaryI: 'ⅈ', | |||
|  |                 imagline: 'ℐ', | |||
|  |                 imagpart: 'ℑ', | |||
|  |                 imath: 'ı', | |||
|  |                 Im: 'ℑ', | |||
|  |                 imof: '⊷', | |||
|  |                 imped: 'Ƶ', | |||
|  |                 Implies: '⇒', | |||
|  |                 incare: '℅', | |||
|  |                 in: '∈', | |||
|  |                 infin: '∞', | |||
|  |                 infintie: '⧝', | |||
|  |                 inodot: 'ı', | |||
|  |                 intcal: '⊺', | |||
|  |                 int: '∫', | |||
|  |                 Int: '∬', | |||
|  |                 integers: 'ℤ', | |||
|  |                 Integral: '∫', | |||
|  |                 intercal: '⊺', | |||
|  |                 Intersection: '⋂', | |||
|  |                 intlarhk: '⨗', | |||
|  |                 intprod: '⨼', | |||
|  |                 InvisibleComma: '', | |||
|  |                 InvisibleTimes: '', | |||
|  |                 IOcy: 'Ё', | |||
|  |                 iocy: 'ё', | |||
|  |                 Iogon: 'Į', | |||
|  |                 iogon: 'į', | |||
|  |                 Iopf: '𝕀', | |||
|  |                 iopf: '𝕚', | |||
|  |                 Iota: 'Ι', | |||
|  |                 iota: 'ι', | |||
|  |                 iprod: '⨼', | |||
|  |                 iquest: '¿', | |||
|  |                 iscr: '𝒾', | |||
|  |                 Iscr: 'ℐ', | |||
|  |                 isin: '∈', | |||
|  |                 isindot: '⋵', | |||
|  |                 isinE: '⋹', | |||
|  |                 isins: '⋴', | |||
|  |                 isinsv: '⋳', | |||
|  |                 isinv: '∈', | |||
|  |                 it: '', | |||
|  |                 Itilde: 'Ĩ', | |||
|  |                 itilde: 'ĩ', | |||
|  |                 Iukcy: 'І', | |||
|  |                 iukcy: 'і', | |||
|  |                 Iuml: 'Ï', | |||
|  |                 iuml: 'ï', | |||
|  |                 Jcirc: 'Ĵ', | |||
|  |                 jcirc: 'ĵ', | |||
|  |                 Jcy: 'Й', | |||
|  |                 jcy: 'й', | |||
|  |                 Jfr: '𝔍', | |||
|  |                 jfr: '𝔧', | |||
|  |                 jmath: 'ȷ', | |||
|  |                 Jopf: '𝕁', | |||
|  |                 jopf: '𝕛', | |||
|  |                 Jscr: '𝒥', | |||
|  |                 jscr: '𝒿', | |||
|  |                 Jsercy: 'Ј', | |||
|  |                 jsercy: 'ј', | |||
|  |                 Jukcy: 'Є', | |||
|  |                 jukcy: 'є', | |||
|  |                 Kappa: 'Κ', | |||
|  |                 kappa: 'κ', | |||
|  |                 kappav: 'ϰ', | |||
|  |                 Kcedil: 'Ķ', | |||
|  |                 kcedil: 'ķ', | |||
|  |                 Kcy: 'К', | |||
|  |                 kcy: 'к', | |||
|  |                 Kfr: '𝔎', | |||
|  |                 kfr: '𝔨', | |||
|  |                 kgreen: 'ĸ', | |||
|  |                 KHcy: 'Х', | |||
|  |                 khcy: 'х', | |||
|  |                 KJcy: 'Ќ', | |||
|  |                 kjcy: 'ќ', | |||
|  |                 Kopf: '𝕂', | |||
|  |                 kopf: '𝕜', | |||
|  |                 Kscr: '𝒦', | |||
|  |                 kscr: '𝓀', | |||
|  |                 lAarr: '⇚', | |||
|  |                 Lacute: 'Ĺ', | |||
|  |                 lacute: 'ĺ', | |||
|  |                 laemptyv: '⦴', | |||
|  |                 lagran: 'ℒ', | |||
|  |                 Lambda: 'Λ', | |||
|  |                 lambda: 'λ', | |||
|  |                 lang: '⟨', | |||
|  |                 Lang: '⟪', | |||
|  |                 langd: '⦑', | |||
|  |                 langle: '⟨', | |||
|  |                 lap: '⪅', | |||
|  |                 Laplacetrf: 'ℒ', | |||
|  |                 laquo: '«', | |||
|  |                 larrb: '⇤', | |||
|  |                 larrbfs: '⤟', | |||
|  |                 larr: '←', | |||
|  |                 Larr: '↞', | |||
|  |                 lArr: '⇐', | |||
|  |                 larrfs: '⤝', | |||
|  |                 larrhk: '↩', | |||
|  |                 larrlp: '↫', | |||
|  |                 larrpl: '⤹', | |||
|  |                 larrsim: '⥳', | |||
|  |                 larrtl: '↢', | |||
|  |                 latail: '⤙', | |||
|  |                 lAtail: '⤛', | |||
|  |                 lat: '⪫', | |||
|  |                 late: '⪭', | |||
|  |                 lates: '⪭︀', | |||
|  |                 lbarr: '⤌', | |||
|  |                 lBarr: '⤎', | |||
|  |                 lbbrk: '❲', | |||
|  |                 lbrace: '{', | |||
|  |                 lbrack: '[', | |||
|  |                 lbrke: '⦋', | |||
|  |                 lbrksld: '⦏', | |||
|  |                 lbrkslu: '⦍', | |||
|  |                 Lcaron: 'Ľ', | |||
|  |                 lcaron: 'ľ', | |||
|  |                 Lcedil: 'Ļ', | |||
|  |                 lcedil: 'ļ', | |||
|  |                 lceil: '⌈', | |||
|  |                 lcub: '{', | |||
|  |                 Lcy: 'Л', | |||
|  |                 lcy: 'л', | |||
|  |                 ldca: '⤶', | |||
|  |                 ldquo: '“', | |||
|  |                 ldquor: '„', | |||
|  |                 ldrdhar: '⥧', | |||
|  |                 ldrushar: '⥋', | |||
|  |                 ldsh: '↲', | |||
|  |                 le: '≤', | |||
|  |                 lE: '≦', | |||
|  |                 LeftAngleBracket: '⟨', | |||
|  |                 LeftArrowBar: '⇤', | |||
|  |                 leftarrow: '←', | |||
|  |                 LeftArrow: '←', | |||
|  |                 Leftarrow: '⇐', | |||
|  |                 LeftArrowRightArrow: '⇆', | |||
|  |                 leftarrowtail: '↢', | |||
|  |                 LeftCeiling: '⌈', | |||
|  |                 LeftDoubleBracket: '⟦', | |||
|  |                 LeftDownTeeVector: '⥡', | |||
|  |                 LeftDownVectorBar: '⥙', | |||
|  |                 LeftDownVector: '⇃', | |||
|  |                 LeftFloor: '⌊', | |||
|  |                 leftharpoondown: '↽', | |||
|  |                 leftharpoonup: '↼', | |||
|  |                 leftleftarrows: '⇇', | |||
|  |                 leftrightarrow: '↔', | |||
|  |                 LeftRightArrow: '↔', | |||
|  |                 Leftrightarrow: '⇔', | |||
|  |                 leftrightarrows: '⇆', | |||
|  |                 leftrightharpoons: '⇋', | |||
|  |                 leftrightsquigarrow: '↭', | |||
|  |                 LeftRightVector: '⥎', | |||
|  |                 LeftTeeArrow: '↤', | |||
|  |                 LeftTee: '⊣', | |||
|  |                 LeftTeeVector: '⥚', | |||
|  |                 leftthreetimes: '⋋', | |||
|  |                 LeftTriangleBar: '⧏', | |||
|  |                 LeftTriangle: '⊲', | |||
|  |                 LeftTriangleEqual: '⊴', | |||
|  |                 LeftUpDownVector: '⥑', | |||
|  |                 LeftUpTeeVector: '⥠', | |||
|  |                 LeftUpVectorBar: '⥘', | |||
|  |                 LeftUpVector: '↿', | |||
|  |                 LeftVectorBar: '⥒', | |||
|  |                 LeftVector: '↼', | |||
|  |                 lEg: '⪋', | |||
|  |                 leg: '⋚', | |||
|  |                 leq: '≤', | |||
|  |                 leqq: '≦', | |||
|  |                 leqslant: '⩽', | |||
|  |                 lescc: '⪨', | |||
|  |                 les: '⩽', | |||
|  |                 lesdot: '⩿', | |||
|  |                 lesdoto: '⪁', | |||
|  |                 lesdotor: '⪃', | |||
|  |                 lesg: '⋚︀', | |||
|  |                 lesges: '⪓', | |||
|  |                 lessapprox: '⪅', | |||
|  |                 lessdot: '⋖', | |||
|  |                 lesseqgtr: '⋚', | |||
|  |                 lesseqqgtr: '⪋', | |||
|  |                 LessEqualGreater: '⋚', | |||
|  |                 LessFullEqual: '≦', | |||
|  |                 LessGreater: '≶', | |||
|  |                 lessgtr: '≶', | |||
|  |                 LessLess: '⪡', | |||
|  |                 lesssim: '≲', | |||
|  |                 LessSlantEqual: '⩽', | |||
|  |                 LessTilde: '≲', | |||
|  |                 lfisht: '⥼', | |||
|  |                 lfloor: '⌊', | |||
|  |                 Lfr: '𝔏', | |||
|  |                 lfr: '𝔩', | |||
|  |                 lg: '≶', | |||
|  |                 lgE: '⪑', | |||
|  |                 lHar: '⥢', | |||
|  |                 lhard: '↽', | |||
|  |                 lharu: '↼', | |||
|  |                 lharul: '⥪', | |||
|  |                 lhblk: '▄', | |||
|  |                 LJcy: 'Љ', | |||
|  |                 ljcy: 'љ', | |||
|  |                 llarr: '⇇', | |||
|  |                 ll: '≪', | |||
|  |                 Ll: '⋘', | |||
|  |                 llcorner: '⌞', | |||
|  |                 Lleftarrow: '⇚', | |||
|  |                 llhard: '⥫', | |||
|  |                 lltri: '◺', | |||
|  |                 Lmidot: 'Ŀ', | |||
|  |                 lmidot: 'ŀ', | |||
|  |                 lmoustache: '⎰', | |||
|  |                 lmoust: '⎰', | |||
|  |                 lnap: '⪉', | |||
|  |                 lnapprox: '⪉', | |||
|  |                 lne: '⪇', | |||
|  |                 lnE: '≨', | |||
|  |                 lneq: '⪇', | |||
|  |                 lneqq: '≨', | |||
|  |                 lnsim: '⋦', | |||
|  |                 loang: '⟬', | |||
|  |                 loarr: '⇽', | |||
|  |                 lobrk: '⟦', | |||
|  |                 longleftarrow: '⟵', | |||
|  |                 LongLeftArrow: '⟵', | |||
|  |                 Longleftarrow: '⟸', | |||
|  |                 longleftrightarrow: '⟷', | |||
|  |                 LongLeftRightArrow: '⟷', | |||
|  |                 Longleftrightarrow: '⟺', | |||
|  |                 longmapsto: '⟼', | |||
|  |                 longrightarrow: '⟶', | |||
|  |                 LongRightArrow: '⟶', | |||
|  |                 Longrightarrow: '⟹', | |||
|  |                 looparrowleft: '↫', | |||
|  |                 looparrowright: '↬', | |||
|  |                 lopar: '⦅', | |||
|  |                 Lopf: '𝕃', | |||
|  |                 lopf: '𝕝', | |||
|  |                 loplus: '⨭', | |||
|  |                 lotimes: '⨴', | |||
|  |                 lowast: '∗', | |||
|  |                 lowbar: '_', | |||
|  |                 LowerLeftArrow: '↙', | |||
|  |                 LowerRightArrow: '↘', | |||
|  |                 loz: '◊', | |||
|  |                 lozenge: '◊', | |||
|  |                 lozf: '⧫', | |||
|  |                 lpar: '(', | |||
|  |                 lparlt: '⦓', | |||
|  |                 lrarr: '⇆', | |||
|  |                 lrcorner: '⌟', | |||
|  |                 lrhar: '⇋', | |||
|  |                 lrhard: '⥭', | |||
|  |                 lrm: '', | |||
|  |                 lrtri: '⊿', | |||
|  |                 lsaquo: '‹', | |||
|  |                 lscr: '𝓁', | |||
|  |                 Lscr: 'ℒ', | |||
|  |                 lsh: '↰', | |||
|  |                 Lsh: '↰', | |||
|  |                 lsim: '≲', | |||
|  |                 lsime: '⪍', | |||
|  |                 lsimg: '⪏', | |||
|  |                 lsqb: '[', | |||
|  |                 lsquo: '‘', | |||
|  |                 lsquor: '‚', | |||
|  |                 Lstrok: 'Ł', | |||
|  |                 lstrok: 'ł', | |||
|  |                 ltcc: '⪦', | |||
|  |                 ltcir: '⩹', | |||
|  |                 lt: '<', | |||
|  |                 LT: '<', | |||
|  |                 Lt: '≪', | |||
|  |                 ltdot: '⋖', | |||
|  |                 lthree: '⋋', | |||
|  |                 ltimes: '⋉', | |||
|  |                 ltlarr: '⥶', | |||
|  |                 ltquest: '⩻', | |||
|  |                 ltri: '◃', | |||
|  |                 ltrie: '⊴', | |||
|  |                 ltrif: '◂', | |||
|  |                 ltrPar: '⦖', | |||
|  |                 lurdshar: '⥊', | |||
|  |                 luruhar: '⥦', | |||
|  |                 lvertneqq: '≨︀', | |||
|  |                 lvnE: '≨︀', | |||
|  |                 macr: '¯', | |||
|  |                 male: '♂', | |||
|  |                 malt: '✠', | |||
|  |                 maltese: '✠', | |||
|  |                 Map: '⤅', | |||
|  |                 map: '↦', | |||
|  |                 mapsto: '↦', | |||
|  |                 mapstodown: '↧', | |||
|  |                 mapstoleft: '↤', | |||
|  |                 mapstoup: '↥', | |||
|  |                 marker: '▮', | |||
|  |                 mcomma: '⨩', | |||
|  |                 Mcy: 'М', | |||
|  |                 mcy: 'м', | |||
|  |                 mdash: '—', | |||
|  |                 mDDot: '∺', | |||
|  |                 measuredangle: '∡', | |||
|  |                 MediumSpace: ' ', | |||
|  |                 Mellintrf: 'ℳ', | |||
|  |                 Mfr: '𝔐', | |||
|  |                 mfr: '𝔪', | |||
|  |                 mho: '℧', | |||
|  |                 micro: 'µ', | |||
|  |                 midast: '*', | |||
|  |                 midcir: '⫰', | |||
|  |                 mid: '∣', | |||
|  |                 middot: '·', | |||
|  |                 minusb: '⊟', | |||
|  |                 minus: '−', | |||
|  |                 minusd: '∸', | |||
|  |                 minusdu: '⨪', | |||
|  |                 MinusPlus: '∓', | |||
|  |                 mlcp: '⫛', | |||
|  |                 mldr: '…', | |||
|  |                 mnplus: '∓', | |||
|  |                 models: '⊧', | |||
|  |                 Mopf: '𝕄', | |||
|  |                 mopf: '𝕞', | |||
|  |                 mp: '∓', | |||
|  |                 mscr: '𝓂', | |||
|  |                 Mscr: 'ℳ', | |||
|  |                 mstpos: '∾', | |||
|  |                 Mu: 'Μ', | |||
|  |                 mu: 'μ', | |||
|  |                 multimap: '⊸', | |||
|  |                 mumap: '⊸', | |||
|  |                 nabla: '∇', | |||
|  |                 Nacute: 'Ń', | |||
|  |                 nacute: 'ń', | |||
|  |                 nang: '∠⃒', | |||
|  |                 nap: '≉', | |||
|  |                 napE: '⩰̸', | |||
|  |                 napid: '≋̸', | |||
|  |                 napos: 'ʼn', | |||
|  |                 napprox: '≉', | |||
|  |                 natural: '♮', | |||
|  |                 naturals: 'ℕ', | |||
|  |                 natur: '♮', | |||
|  |                 nbsp: ' ', | |||
|  |                 nbump: '≎̸', | |||
|  |                 nbumpe: '≏̸', | |||
|  |                 ncap: '⩃', | |||
|  |                 Ncaron: 'Ň', | |||
|  |                 ncaron: 'ň', | |||
|  |                 Ncedil: 'Ņ', | |||
|  |                 ncedil: 'ņ', | |||
|  |                 ncong: '≇', | |||
|  |                 ncongdot: '⩭̸', | |||
|  |                 ncup: '⩂', | |||
|  |                 Ncy: 'Н', | |||
|  |                 ncy: 'н', | |||
|  |                 ndash: '–', | |||
|  |                 nearhk: '⤤', | |||
|  |                 nearr: '↗', | |||
|  |                 neArr: '⇗', | |||
|  |                 nearrow: '↗', | |||
|  |                 ne: '≠', | |||
|  |                 nedot: '≐̸', | |||
|  |                 NegativeMediumSpace: '', | |||
|  |                 NegativeThickSpace: '', | |||
|  |                 NegativeThinSpace: '', | |||
|  |                 NegativeVeryThinSpace: '', | |||
|  |                 nequiv: '≢', | |||
|  |                 nesear: '⤨', | |||
|  |                 nesim: '≂̸', | |||
|  |                 NestedGreaterGreater: '≫', | |||
|  |                 NestedLessLess: '≪', | |||
|  |                 NewLine: '\n', | |||
|  |                 nexist: '∄', | |||
|  |                 nexists: '∄', | |||
|  |                 Nfr: '𝔑', | |||
|  |                 nfr: '𝔫', | |||
|  |                 ngE: '≧̸', | |||
|  |                 nge: '≱', | |||
|  |                 ngeq: '≱', | |||
|  |                 ngeqq: '≧̸', | |||
|  |                 ngeqslant: '⩾̸', | |||
|  |                 nges: '⩾̸', | |||
|  |                 nGg: '⋙̸', | |||
|  |                 ngsim: '≵', | |||
|  |                 nGt: '≫⃒', | |||
|  |                 ngt: '≯', | |||
|  |                 ngtr: '≯', | |||
|  |                 nGtv: '≫̸', | |||
|  |                 nharr: '↮', | |||
|  |                 nhArr: '⇎', | |||
|  |                 nhpar: '⫲', | |||
|  |                 ni: '∋', | |||
|  |                 nis: '⋼', | |||
|  |                 nisd: '⋺', | |||
|  |                 niv: '∋', | |||
|  |                 NJcy: 'Њ', | |||
|  |                 njcy: 'њ', | |||
|  |                 nlarr: '↚', | |||
|  |                 nlArr: '⇍', | |||
|  |                 nldr: '‥', | |||
|  |                 nlE: '≦̸', | |||
|  |                 nle: '≰', | |||
|  |                 nleftarrow: '↚', | |||
|  |                 nLeftarrow: '⇍', | |||
|  |                 nleftrightarrow: '↮', | |||
|  |                 nLeftrightarrow: '⇎', | |||
|  |                 nleq: '≰', | |||
|  |                 nleqq: '≦̸', | |||
|  |                 nleqslant: '⩽̸', | |||
|  |                 nles: '⩽̸', | |||
|  |                 nless: '≮', | |||
|  |                 nLl: '⋘̸', | |||
|  |                 nlsim: '≴', | |||
|  |                 nLt: '≪⃒', | |||
|  |                 nlt: '≮', | |||
|  |                 nltri: '⋪', | |||
|  |                 nltrie: '⋬', | |||
|  |                 nLtv: '≪̸', | |||
|  |                 nmid: '∤', | |||
|  |                 NoBreak: '', | |||
|  |                 NonBreakingSpace: ' ', | |||
|  |                 nopf: '𝕟', | |||
|  |                 Nopf: 'ℕ', | |||
|  |                 Not: '⫬', | |||
|  |                 not: '¬', | |||
|  |                 NotCongruent: '≢', | |||
|  |                 NotCupCap: '≭', | |||
|  |                 NotDoubleVerticalBar: '∦', | |||
|  |                 NotElement: '∉', | |||
|  |                 NotEqual: '≠', | |||
|  |                 NotEqualTilde: '≂̸', | |||
|  |                 NotExists: '∄', | |||
|  |                 NotGreater: '≯', | |||
|  |                 NotGreaterEqual: '≱', | |||
|  |                 NotGreaterFullEqual: '≧̸', | |||
|  |                 NotGreaterGreater: '≫̸', | |||
|  |                 NotGreaterLess: '≹', | |||
|  |                 NotGreaterSlantEqual: '⩾̸', | |||
|  |                 NotGreaterTilde: '≵', | |||
|  |                 NotHumpDownHump: '≎̸', | |||
|  |                 NotHumpEqual: '≏̸', | |||
|  |                 notin: '∉', | |||
|  |                 notindot: '⋵̸', | |||
|  |                 notinE: '⋹̸', | |||
|  |                 notinva: '∉', | |||
|  |                 notinvb: '⋷', | |||
|  |                 notinvc: '⋶', | |||
|  |                 NotLeftTriangleBar: '⧏̸', | |||
|  |                 NotLeftTriangle: '⋪', | |||
|  |                 NotLeftTriangleEqual: '⋬', | |||
|  |                 NotLess: '≮', | |||
|  |                 NotLessEqual: '≰', | |||
|  |                 NotLessGreater: '≸', | |||
|  |                 NotLessLess: '≪̸', | |||
|  |                 NotLessSlantEqual: '⩽̸', | |||
|  |                 NotLessTilde: '≴', | |||
|  |                 NotNestedGreaterGreater: '⪢̸', | |||
|  |                 NotNestedLessLess: '⪡̸', | |||
|  |                 notni: '∌', | |||
|  |                 notniva: '∌', | |||
|  |                 notnivb: '⋾', | |||
|  |                 notnivc: '⋽', | |||
|  |                 NotPrecedes: '⊀', | |||
|  |                 NotPrecedesEqual: '⪯̸', | |||
|  |                 NotPrecedesSlantEqual: '⋠', | |||
|  |                 NotReverseElement: '∌', | |||
|  |                 NotRightTriangleBar: '⧐̸', | |||
|  |                 NotRightTriangle: '⋫', | |||
|  |                 NotRightTriangleEqual: '⋭', | |||
|  |                 NotSquareSubset: '⊏̸', | |||
|  |                 NotSquareSubsetEqual: '⋢', | |||
|  |                 NotSquareSuperset: '⊐̸', | |||
|  |                 NotSquareSupersetEqual: '⋣', | |||
|  |                 NotSubset: '⊂⃒', | |||
|  |                 NotSubsetEqual: '⊈', | |||
|  |                 NotSucceeds: '⊁', | |||
|  |                 NotSucceedsEqual: '⪰̸', | |||
|  |                 NotSucceedsSlantEqual: '⋡', | |||
|  |                 NotSucceedsTilde: '≿̸', | |||
|  |                 NotSuperset: '⊃⃒', | |||
|  |                 NotSupersetEqual: '⊉', | |||
|  |                 NotTilde: '≁', | |||
|  |                 NotTildeEqual: '≄', | |||
|  |                 NotTildeFullEqual: '≇', | |||
|  |                 NotTildeTilde: '≉', | |||
|  |                 NotVerticalBar: '∤', | |||
|  |                 nparallel: '∦', | |||
|  |                 npar: '∦', | |||
|  |                 nparsl: '⫽⃥', | |||
|  |                 npart: '∂̸', | |||
|  |                 npolint: '⨔', | |||
|  |                 npr: '⊀', | |||
|  |                 nprcue: '⋠', | |||
|  |                 nprec: '⊀', | |||
|  |                 npreceq: '⪯̸', | |||
|  |                 npre: '⪯̸', | |||
|  |                 nrarrc: '⤳̸', | |||
|  |                 nrarr: '↛', | |||
|  |                 nrArr: '⇏', | |||
|  |                 nrarrw: '↝̸', | |||
|  |                 nrightarrow: '↛', | |||
|  |                 nRightarrow: '⇏', | |||
|  |                 nrtri: '⋫', | |||
|  |                 nrtrie: '⋭', | |||
|  |                 nsc: '⊁', | |||
|  |                 nsccue: '⋡', | |||
|  |                 nsce: '⪰̸', | |||
|  |                 Nscr: '𝒩', | |||
|  |                 nscr: '𝓃', | |||
|  |                 nshortmid: '∤', | |||
|  |                 nshortparallel: '∦', | |||
|  |                 nsim: '≁', | |||
|  |                 nsime: '≄', | |||
|  |                 nsimeq: '≄', | |||
|  |                 nsmid: '∤', | |||
|  |                 nspar: '∦', | |||
|  |                 nsqsube: '⋢', | |||
|  |                 nsqsupe: '⋣', | |||
|  |                 nsub: '⊄', | |||
|  |                 nsubE: '⫅̸', | |||
|  |                 nsube: '⊈', | |||
|  |                 nsubset: '⊂⃒', | |||
|  |                 nsubseteq: '⊈', | |||
|  |                 nsubseteqq: '⫅̸', | |||
|  |                 nsucc: '⊁', | |||
|  |                 nsucceq: '⪰̸', | |||
|  |                 nsup: '⊅', | |||
|  |                 nsupE: '⫆̸', | |||
|  |                 nsupe: '⊉', | |||
|  |                 nsupset: '⊃⃒', | |||
|  |                 nsupseteq: '⊉', | |||
|  |                 nsupseteqq: '⫆̸', | |||
|  |                 ntgl: '≹', | |||
|  |                 Ntilde: 'Ñ', | |||
|  |                 ntilde: 'ñ', | |||
|  |                 ntlg: '≸', | |||
|  |                 ntriangleleft: '⋪', | |||
|  |                 ntrianglelefteq: '⋬', | |||
|  |                 ntriangleright: '⋫', | |||
|  |                 ntrianglerighteq: '⋭', | |||
|  |                 Nu: 'Ν', | |||
|  |                 nu: 'ν', | |||
|  |                 num: '#', | |||
|  |                 numero: '№', | |||
|  |                 numsp: ' ', | |||
|  |                 nvap: '≍⃒', | |||
|  |                 nvdash: '⊬', | |||
|  |                 nvDash: '⊭', | |||
|  |                 nVdash: '⊮', | |||
|  |                 nVDash: '⊯', | |||
|  |                 nvge: '≥⃒', | |||
|  |                 nvgt: '>⃒', | |||
|  |                 nvHarr: '⤄', | |||
|  |                 nvinfin: '⧞', | |||
|  |                 nvlArr: '⤂', | |||
|  |                 nvle: '≤⃒', | |||
|  |                 nvlt: '<⃒', | |||
|  |                 nvltrie: '⊴⃒', | |||
|  |                 nvrArr: '⤃', | |||
|  |                 nvrtrie: '⊵⃒', | |||
|  |                 nvsim: '∼⃒', | |||
|  |                 nwarhk: '⤣', | |||
|  |                 nwarr: '↖', | |||
|  |                 nwArr: '⇖', | |||
|  |                 nwarrow: '↖', | |||
|  |                 nwnear: '⤧', | |||
|  |                 Oacute: 'Ó', | |||
|  |                 oacute: 'ó', | |||
|  |                 oast: '⊛', | |||
|  |                 Ocirc: 'Ô', | |||
|  |                 ocirc: 'ô', | |||
|  |                 ocir: '⊚', | |||
|  |                 Ocy: 'О', | |||
|  |                 ocy: 'о', | |||
|  |                 odash: '⊝', | |||
|  |                 Odblac: 'Ő', | |||
|  |                 odblac: 'ő', | |||
|  |                 odiv: '⨸', | |||
|  |                 odot: '⊙', | |||
|  |                 odsold: '⦼', | |||
|  |                 OElig: 'Œ', | |||
|  |                 oelig: 'œ', | |||
|  |                 ofcir: '⦿', | |||
|  |                 Ofr: '𝔒', | |||
|  |                 ofr: '𝔬', | |||
|  |                 ogon: '˛', | |||
|  |                 Ograve: 'Ò', | |||
|  |                 ograve: 'ò', | |||
|  |                 ogt: '⧁', | |||
|  |                 ohbar: '⦵', | |||
|  |                 ohm: 'Ω', | |||
|  |                 oint: '∮', | |||
|  |                 olarr: '↺', | |||
|  |                 olcir: '⦾', | |||
|  |                 olcross: '⦻', | |||
|  |                 oline: '‾', | |||
|  |                 olt: '⧀', | |||
|  |                 Omacr: 'Ō', | |||
|  |                 omacr: 'ō', | |||
|  |                 Omega: 'Ω', | |||
|  |                 omega: 'ω', | |||
|  |                 Omicron: 'Ο', | |||
|  |                 omicron: 'ο', | |||
|  |                 omid: '⦶', | |||
|  |                 ominus: '⊖', | |||
|  |                 Oopf: '𝕆', | |||
|  |                 oopf: '𝕠', | |||
|  |                 opar: '⦷', | |||
|  |                 OpenCurlyDoubleQuote: '“', | |||
|  |                 OpenCurlyQuote: '‘', | |||
|  |                 operp: '⦹', | |||
|  |                 oplus: '⊕', | |||
|  |                 orarr: '↻', | |||
|  |                 Or: '⩔', | |||
|  |                 or: '∨', | |||
|  |                 ord: '⩝', | |||
|  |                 order: 'ℴ', | |||
|  |                 orderof: 'ℴ', | |||
|  |                 ordf: 'ª', | |||
|  |                 ordm: 'º', | |||
|  |                 origof: '⊶', | |||
|  |                 oror: '⩖', | |||
|  |                 orslope: '⩗', | |||
|  |                 orv: '⩛', | |||
|  |                 oS: 'Ⓢ', | |||
|  |                 Oscr: '𝒪', | |||
|  |                 oscr: 'ℴ', | |||
|  |                 Oslash: 'Ø', | |||
|  |                 oslash: 'ø', | |||
|  |                 osol: '⊘', | |||
|  |                 Otilde: 'Õ', | |||
|  |                 otilde: 'õ', | |||
|  |                 otimesas: '⨶', | |||
|  |                 Otimes: '⨷', | |||
|  |                 otimes: '⊗', | |||
|  |                 Ouml: 'Ö', | |||
|  |                 ouml: 'ö', | |||
|  |                 ovbar: '⌽', | |||
|  |                 OverBar: '‾', | |||
|  |                 OverBrace: '⏞', | |||
|  |                 OverBracket: '⎴', | |||
|  |                 OverParenthesis: '⏜', | |||
|  |                 para: '¶', | |||
|  |                 parallel: '∥', | |||
|  |                 par: '∥', | |||
|  |                 parsim: '⫳', | |||
|  |                 parsl: '⫽', | |||
|  |                 part: '∂', | |||
|  |                 PartialD: '∂', | |||
|  |                 Pcy: 'П', | |||
|  |                 pcy: 'п', | |||
|  |                 percnt: '%', | |||
|  |                 period: '.', | |||
|  |                 permil: '‰', | |||
|  |                 perp: '⊥', | |||
|  |                 pertenk: '‱', | |||
|  |                 Pfr: '𝔓', | |||
|  |                 pfr: '𝔭', | |||
|  |                 Phi: 'Φ', | |||
|  |                 phi: 'φ', | |||
|  |                 phiv: 'ϕ', | |||
|  |                 phmmat: 'ℳ', | |||
|  |                 phone: '☎', | |||
|  |                 Pi: 'Π', | |||
|  |                 pi: 'π', | |||
|  |                 pitchfork: '⋔', | |||
|  |                 piv: 'ϖ', | |||
|  |                 planck: 'ℏ', | |||
|  |                 planckh: 'ℎ', | |||
|  |                 plankv: 'ℏ', | |||
|  |                 plusacir: '⨣', | |||
|  |                 plusb: '⊞', | |||
|  |                 pluscir: '⨢', | |||
|  |                 plus: '+', | |||
|  |                 plusdo: '∔', | |||
|  |                 plusdu: '⨥', | |||
|  |                 pluse: '⩲', | |||
|  |                 PlusMinus: '±', | |||
|  |                 plusmn: '±', | |||
|  |                 plussim: '⨦', | |||
|  |                 plustwo: '⨧', | |||
|  |                 pm: '±', | |||
|  |                 Poincareplane: 'ℌ', | |||
|  |                 pointint: '⨕', | |||
|  |                 popf: '𝕡', | |||
|  |                 Popf: 'ℙ', | |||
|  |                 pound: '£', | |||
|  |                 prap: '⪷', | |||
|  |                 Pr: '⪻', | |||
|  |                 pr: '≺', | |||
|  |                 prcue: '≼', | |||
|  |                 precapprox: '⪷', | |||
|  |                 prec: '≺', | |||
|  |                 preccurlyeq: '≼', | |||
|  |                 Precedes: '≺', | |||
|  |                 PrecedesEqual: '⪯', | |||
|  |                 PrecedesSlantEqual: '≼', | |||
|  |                 PrecedesTilde: '≾', | |||
|  |                 preceq: '⪯', | |||
|  |                 precnapprox: '⪹', | |||
|  |                 precneqq: '⪵', | |||
|  |                 precnsim: '⋨', | |||
|  |                 pre: '⪯', | |||
|  |                 prE: '⪳', | |||
|  |                 precsim: '≾', | |||
|  |                 prime: '′', | |||
|  |                 Prime: '″', | |||
|  |                 primes: 'ℙ', | |||
|  |                 prnap: '⪹', | |||
|  |                 prnE: '⪵', | |||
|  |                 prnsim: '⋨', | |||
|  |                 prod: '∏', | |||
|  |                 Product: '∏', | |||
|  |                 profalar: '⌮', | |||
|  |                 profline: '⌒', | |||
|  |                 profsurf: '⌓', | |||
|  |                 prop: '∝', | |||
|  |                 Proportional: '∝', | |||
|  |                 Proportion: '∷', | |||
|  |                 propto: '∝', | |||
|  |                 prsim: '≾', | |||
|  |                 prurel: '⊰', | |||
|  |                 Pscr: '𝒫', | |||
|  |                 pscr: '𝓅', | |||
|  |                 Psi: 'Ψ', | |||
|  |                 psi: 'ψ', | |||
|  |                 puncsp: ' ', | |||
|  |                 Qfr: '𝔔', | |||
|  |                 qfr: '𝔮', | |||
|  |                 qint: '⨌', | |||
|  |                 qopf: '𝕢', | |||
|  |                 Qopf: 'ℚ', | |||
|  |                 qprime: '⁗', | |||
|  |                 Qscr: '𝒬', | |||
|  |                 qscr: '𝓆', | |||
|  |                 quaternions: 'ℍ', | |||
|  |                 quatint: '⨖', | |||
|  |                 quest: '?', | |||
|  |                 questeq: '≟', | |||
|  |                 quot: '"', | |||
|  |                 QUOT: '"', | |||
|  |                 rAarr: '⇛', | |||
|  |                 race: '∽̱', | |||
|  |                 Racute: 'Ŕ', | |||
|  |                 racute: 'ŕ', | |||
|  |                 radic: '√', | |||
|  |                 raemptyv: '⦳', | |||
|  |                 rang: '⟩', | |||
|  |                 Rang: '⟫', | |||
|  |                 rangd: '⦒', | |||
|  |                 range: '⦥', | |||
|  |                 rangle: '⟩', | |||
|  |                 raquo: '»', | |||
|  |                 rarrap: '⥵', | |||
|  |                 rarrb: '⇥', | |||
|  |                 rarrbfs: '⤠', | |||
|  |                 rarrc: '⤳', | |||
|  |                 rarr: '→', | |||
|  |                 Rarr: '↠', | |||
|  |                 rArr: '⇒', | |||
|  |                 rarrfs: '⤞', | |||
|  |                 rarrhk: '↪', | |||
|  |                 rarrlp: '↬', | |||
|  |                 rarrpl: '⥅', | |||
|  |                 rarrsim: '⥴', | |||
|  |                 Rarrtl: '⤖', | |||
|  |                 rarrtl: '↣', | |||
|  |                 rarrw: '↝', | |||
|  |                 ratail: '⤚', | |||
|  |                 rAtail: '⤜', | |||
|  |                 ratio: '∶', | |||
|  |                 rationals: 'ℚ', | |||
|  |                 rbarr: '⤍', | |||
|  |                 rBarr: '⤏', | |||
|  |                 RBarr: '⤐', | |||
|  |                 rbbrk: '❳', | |||
|  |                 rbrace: '}', | |||
|  |                 rbrack: ']', | |||
|  |                 rbrke: '⦌', | |||
|  |                 rbrksld: '⦎', | |||
|  |                 rbrkslu: '⦐', | |||
|  |                 Rcaron: 'Ř', | |||
|  |                 rcaron: 'ř', | |||
|  |                 Rcedil: 'Ŗ', | |||
|  |                 rcedil: 'ŗ', | |||
|  |                 rceil: '⌉', | |||
|  |                 rcub: '}', | |||
|  |                 Rcy: 'Р', | |||
|  |                 rcy: 'р', | |||
|  |                 rdca: '⤷', | |||
|  |                 rdldhar: '⥩', | |||
|  |                 rdquo: '”', | |||
|  |                 rdquor: '”', | |||
|  |                 rdsh: '↳', | |||
|  |                 real: 'ℜ', | |||
|  |                 realine: 'ℛ', | |||
|  |                 realpart: 'ℜ', | |||
|  |                 reals: 'ℝ', | |||
|  |                 Re: 'ℜ', | |||
|  |                 rect: '▭', | |||
|  |                 reg: '®', | |||
|  |                 REG: '®', | |||
|  |                 ReverseElement: '∋', | |||
|  |                 ReverseEquilibrium: '⇋', | |||
|  |                 ReverseUpEquilibrium: '⥯', | |||
|  |                 rfisht: '⥽', | |||
|  |                 rfloor: '⌋', | |||
|  |                 rfr: '𝔯', | |||
|  |                 Rfr: 'ℜ', | |||
|  |                 rHar: '⥤', | |||
|  |                 rhard: '⇁', | |||
|  |                 rharu: '⇀', | |||
|  |                 rharul: '⥬', | |||
|  |                 Rho: 'Ρ', | |||
|  |                 rho: 'ρ', | |||
|  |                 rhov: 'ϱ', | |||
|  |                 RightAngleBracket: '⟩', | |||
|  |                 RightArrowBar: '⇥', | |||
|  |                 rightarrow: '→', | |||
|  |                 RightArrow: '→', | |||
|  |                 Rightarrow: '⇒', | |||
|  |                 RightArrowLeftArrow: '⇄', | |||
|  |                 rightarrowtail: '↣', | |||
|  |                 RightCeiling: '⌉', | |||
|  |                 RightDoubleBracket: '⟧', | |||
|  |                 RightDownTeeVector: '⥝', | |||
|  |                 RightDownVectorBar: '⥕', | |||
|  |                 RightDownVector: '⇂', | |||
|  |                 RightFloor: '⌋', | |||
|  |                 rightharpoondown: '⇁', | |||
|  |                 rightharpoonup: '⇀', | |||
|  |                 rightleftarrows: '⇄', | |||
|  |                 rightleftharpoons: '⇌', | |||
|  |                 rightrightarrows: '⇉', | |||
|  |                 rightsquigarrow: '↝', | |||
|  |                 RightTeeArrow: '↦', | |||
|  |                 RightTee: '⊢', | |||
|  |                 RightTeeVector: '⥛', | |||
|  |                 rightthreetimes: '⋌', | |||
|  |                 RightTriangleBar: '⧐', | |||
|  |                 RightTriangle: '⊳', | |||
|  |                 RightTriangleEqual: '⊵', | |||
|  |                 RightUpDownVector: '⥏', | |||
|  |                 RightUpTeeVector: '⥜', | |||
|  |                 RightUpVectorBar: '⥔', | |||
|  |                 RightUpVector: '↾', | |||
|  |                 RightVectorBar: '⥓', | |||
|  |                 RightVector: '⇀', | |||
|  |                 ring: '˚', | |||
|  |                 risingdotseq: '≓', | |||
|  |                 rlarr: '⇄', | |||
|  |                 rlhar: '⇌', | |||
|  |                 rlm: '', | |||
|  |                 rmoustache: '⎱', | |||
|  |                 rmoust: '⎱', | |||
|  |                 rnmid: '⫮', | |||
|  |                 roang: '⟭', | |||
|  |                 roarr: '⇾', | |||
|  |                 robrk: '⟧', | |||
|  |                 ropar: '⦆', | |||
|  |                 ropf: '𝕣', | |||
|  |                 Ropf: 'ℝ', | |||
|  |                 roplus: '⨮', | |||
|  |                 rotimes: '⨵', | |||
|  |                 RoundImplies: '⥰', | |||
|  |                 rpar: ')', | |||
|  |                 rpargt: '⦔', | |||
|  |                 rppolint: '⨒', | |||
|  |                 rrarr: '⇉', | |||
|  |                 Rrightarrow: '⇛', | |||
|  |                 rsaquo: '›', | |||
|  |                 rscr: '𝓇', | |||
|  |                 Rscr: 'ℛ', | |||
|  |                 rsh: '↱', | |||
|  |                 Rsh: '↱', | |||
|  |                 rsqb: ']', | |||
|  |                 rsquo: '’', | |||
|  |                 rsquor: '’', | |||
|  |                 rthree: '⋌', | |||
|  |                 rtimes: '⋊', | |||
|  |                 rtri: '▹', | |||
|  |                 rtrie: '⊵', | |||
|  |                 rtrif: '▸', | |||
|  |                 rtriltri: '⧎', | |||
|  |                 RuleDelayed: '⧴', | |||
|  |                 ruluhar: '⥨', | |||
|  |                 rx: '℞', | |||
|  |                 Sacute: 'Ś', | |||
|  |                 sacute: 'ś', | |||
|  |                 sbquo: '‚', | |||
|  |                 scap: '⪸', | |||
|  |                 Scaron: 'Š', | |||
|  |                 scaron: 'š', | |||
|  |                 Sc: '⪼', | |||
|  |                 sc: '≻', | |||
|  |                 sccue: '≽', | |||
|  |                 sce: '⪰', | |||
|  |                 scE: '⪴', | |||
|  |                 Scedil: 'Ş', | |||
|  |                 scedil: 'ş', | |||
|  |                 Scirc: 'Ŝ', | |||
|  |                 scirc: 'ŝ', | |||
|  |                 scnap: '⪺', | |||
|  |                 scnE: '⪶', | |||
|  |                 scnsim: '⋩', | |||
|  |                 scpolint: '⨓', | |||
|  |                 scsim: '≿', | |||
|  |                 Scy: 'С', | |||
|  |                 scy: 'с', | |||
|  |                 sdotb: '⊡', | |||
|  |                 sdot: '⋅', | |||
|  |                 sdote: '⩦', | |||
|  |                 searhk: '⤥', | |||
|  |                 searr: '↘', | |||
|  |                 seArr: '⇘', | |||
|  |                 searrow: '↘', | |||
|  |                 sect: '§', | |||
|  |                 semi: ';', | |||
|  |                 seswar: '⤩', | |||
|  |                 setminus: '∖', | |||
|  |                 setmn: '∖', | |||
|  |                 sext: '✶', | |||
|  |                 Sfr: '𝔖', | |||
|  |                 sfr: '𝔰', | |||
|  |                 sfrown: '⌢', | |||
|  |                 sharp: '♯', | |||
|  |                 SHCHcy: 'Щ', | |||
|  |                 shchcy: 'щ', | |||
|  |                 SHcy: 'Ш', | |||
|  |                 shcy: 'ш', | |||
|  |                 ShortDownArrow: '↓', | |||
|  |                 ShortLeftArrow: '←', | |||
|  |                 shortmid: '∣', | |||
|  |                 shortparallel: '∥', | |||
|  |                 ShortRightArrow: '→', | |||
|  |                 ShortUpArrow: '↑', | |||
|  |                 shy: '', | |||
|  |                 Sigma: 'Σ', | |||
|  |                 sigma: 'σ', | |||
|  |                 sigmaf: 'ς', | |||
|  |                 sigmav: 'ς', | |||
|  |                 sim: '∼', | |||
|  |                 simdot: '⩪', | |||
|  |                 sime: '≃', | |||
|  |                 simeq: '≃', | |||
|  |                 simg: '⪞', | |||
|  |                 simgE: '⪠', | |||
|  |                 siml: '⪝', | |||
|  |                 simlE: '⪟', | |||
|  |                 simne: '≆', | |||
|  |                 simplus: '⨤', | |||
|  |                 simrarr: '⥲', | |||
|  |                 slarr: '←', | |||
|  |                 SmallCircle: '∘', | |||
|  |                 smallsetminus: '∖', | |||
|  |                 smashp: '⨳', | |||
|  |                 smeparsl: '⧤', | |||
|  |                 smid: '∣', | |||
|  |                 smile: '⌣', | |||
|  |                 smt: '⪪', | |||
|  |                 smte: '⪬', | |||
|  |                 smtes: '⪬︀', | |||
|  |                 SOFTcy: 'Ь', | |||
|  |                 softcy: 'ь', | |||
|  |                 solbar: '⌿', | |||
|  |                 solb: '⧄', | |||
|  |                 sol: '/', | |||
|  |                 Sopf: '𝕊', | |||
|  |                 sopf: '𝕤', | |||
|  |                 spades: '♠', | |||
|  |                 spadesuit: '♠', | |||
|  |                 spar: '∥', | |||
|  |                 sqcap: '⊓', | |||
|  |                 sqcaps: '⊓︀', | |||
|  |                 sqcup: '⊔', | |||
|  |                 sqcups: '⊔︀', | |||
|  |                 Sqrt: '√', | |||
|  |                 sqsub: '⊏', | |||
|  |                 sqsube: '⊑', | |||
|  |                 sqsubset: '⊏', | |||
|  |                 sqsubseteq: '⊑', | |||
|  |                 sqsup: '⊐', | |||
|  |                 sqsupe: '⊒', | |||
|  |                 sqsupset: '⊐', | |||
|  |                 sqsupseteq: '⊒', | |||
|  |                 square: '□', | |||
|  |                 Square: '□', | |||
|  |                 SquareIntersection: '⊓', | |||
|  |                 SquareSubset: '⊏', | |||
|  |                 SquareSubsetEqual: '⊑', | |||
|  |                 SquareSuperset: '⊐', | |||
|  |                 SquareSupersetEqual: '⊒', | |||
|  |                 SquareUnion: '⊔', | |||
|  |                 squarf: '▪', | |||
|  |                 squ: '□', | |||
|  |                 squf: '▪', | |||
|  |                 srarr: '→', | |||
|  |                 Sscr: '𝒮', | |||
|  |                 sscr: '𝓈', | |||
|  |                 ssetmn: '∖', | |||
|  |                 ssmile: '⌣', | |||
|  |                 sstarf: '⋆', | |||
|  |                 Star: '⋆', | |||
|  |                 star: '☆', | |||
|  |                 starf: '★', | |||
|  |                 straightepsilon: 'ϵ', | |||
|  |                 straightphi: 'ϕ', | |||
|  |                 strns: '¯', | |||
|  |                 sub: '⊂', | |||
|  |                 Sub: '⋐', | |||
|  |                 subdot: '⪽', | |||
|  |                 subE: '⫅', | |||
|  |                 sube: '⊆', | |||
|  |                 subedot: '⫃', | |||
|  |                 submult: '⫁', | |||
|  |                 subnE: '⫋', | |||
|  |                 subne: '⊊', | |||
|  |                 subplus: '⪿', | |||
|  |                 subrarr: '⥹', | |||
|  |                 subset: '⊂', | |||
|  |                 Subset: '⋐', | |||
|  |                 subseteq: '⊆', | |||
|  |                 subseteqq: '⫅', | |||
|  |                 SubsetEqual: '⊆', | |||
|  |                 subsetneq: '⊊', | |||
|  |                 subsetneqq: '⫋', | |||
|  |                 subsim: '⫇', | |||
|  |                 subsub: '⫕', | |||
|  |                 subsup: '⫓', | |||
|  |                 succapprox: '⪸', | |||
|  |                 succ: '≻', | |||
|  |                 succcurlyeq: '≽', | |||
|  |                 Succeeds: '≻', | |||
|  |                 SucceedsEqual: '⪰', | |||
|  |                 SucceedsSlantEqual: '≽', | |||
|  |                 SucceedsTilde: '≿', | |||
|  |                 succeq: '⪰', | |||
|  |                 succnapprox: '⪺', | |||
|  |                 succneqq: '⪶', | |||
|  |                 succnsim: '⋩', | |||
|  |                 succsim: '≿', | |||
|  |                 SuchThat: '∋', | |||
|  |                 sum: '∑', | |||
|  |                 Sum: '∑', | |||
|  |                 sung: '♪', | |||
|  |                 sup1: '¹', | |||
|  |                 sup2: '²', | |||
|  |                 sup3: '³', | |||
|  |                 sup: '⊃', | |||
|  |                 Sup: '⋑', | |||
|  |                 supdot: '⪾', | |||
|  |                 supdsub: '⫘', | |||
|  |                 supE: '⫆', | |||
|  |                 supe: '⊇', | |||
|  |                 supedot: '⫄', | |||
|  |                 Superset: '⊃', | |||
|  |                 SupersetEqual: '⊇', | |||
|  |                 suphsol: '⟉', | |||
|  |                 suphsub: '⫗', | |||
|  |                 suplarr: '⥻', | |||
|  |                 supmult: '⫂', | |||
|  |                 supnE: '⫌', | |||
|  |                 supne: '⊋', | |||
|  |                 supplus: '⫀', | |||
|  |                 supset: '⊃', | |||
|  |                 Supset: '⋑', | |||
|  |                 supseteq: '⊇', | |||
|  |                 supseteqq: '⫆', | |||
|  |                 supsetneq: '⊋', | |||
|  |                 supsetneqq: '⫌', | |||
|  |                 supsim: '⫈', | |||
|  |                 supsub: '⫔', | |||
|  |                 supsup: '⫖', | |||
|  |                 swarhk: '⤦', | |||
|  |                 swarr: '↙', | |||
|  |                 swArr: '⇙', | |||
|  |                 swarrow: '↙', | |||
|  |                 swnwar: '⤪', | |||
|  |                 szlig: 'ß', | |||
|  |                 Tab: '	', | |||
|  |                 target: '⌖', | |||
|  |                 Tau: 'Τ', | |||
|  |                 tau: 'τ', | |||
|  |                 tbrk: '⎴', | |||
|  |                 Tcaron: 'Ť', | |||
|  |                 tcaron: 'ť', | |||
|  |                 Tcedil: 'Ţ', | |||
|  |                 tcedil: 'ţ', | |||
|  |                 Tcy: 'Т', | |||
|  |                 tcy: 'т', | |||
|  |                 tdot: '⃛', | |||
|  |                 telrec: '⌕', | |||
|  |                 Tfr: '𝔗', | |||
|  |                 tfr: '𝔱', | |||
|  |                 there4: '∴', | |||
|  |                 therefore: '∴', | |||
|  |                 Therefore: '∴', | |||
|  |                 Theta: 'Θ', | |||
|  |                 theta: 'θ', | |||
|  |                 thetasym: 'ϑ', | |||
|  |                 thetav: 'ϑ', | |||
|  |                 thickapprox: '≈', | |||
|  |                 thicksim: '∼', | |||
|  |                 ThickSpace: '  ', | |||
|  |                 ThinSpace: ' ', | |||
|  |                 thinsp: ' ', | |||
|  |                 thkap: '≈', | |||
|  |                 thksim: '∼', | |||
|  |                 THORN: 'Þ', | |||
|  |                 thorn: 'þ', | |||
|  |                 tilde: '˜', | |||
|  |                 Tilde: '∼', | |||
|  |                 TildeEqual: '≃', | |||
|  |                 TildeFullEqual: '≅', | |||
|  |                 TildeTilde: '≈', | |||
|  |                 timesbar: '⨱', | |||
|  |                 timesb: '⊠', | |||
|  |                 times: '×', | |||
|  |                 timesd: '⨰', | |||
|  |                 tint: '∭', | |||
|  |                 toea: '⤨', | |||
|  |                 topbot: '⌶', | |||
|  |                 topcir: '⫱', | |||
|  |                 top: '⊤', | |||
|  |                 Topf: '𝕋', | |||
|  |                 topf: '𝕥', | |||
|  |                 topfork: '⫚', | |||
|  |                 tosa: '⤩', | |||
|  |                 tprime: '‴', | |||
|  |                 trade: '™', | |||
|  |                 TRADE: '™', | |||
|  |                 triangle: '▵', | |||
|  |                 triangledown: '▿', | |||
|  |                 triangleleft: '◃', | |||
|  |                 trianglelefteq: '⊴', | |||
|  |                 triangleq: '≜', | |||
|  |                 triangleright: '▹', | |||
|  |                 trianglerighteq: '⊵', | |||
|  |                 tridot: '◬', | |||
|  |                 trie: '≜', | |||
|  |                 triminus: '⨺', | |||
|  |                 TripleDot: '⃛', | |||
|  |                 triplus: '⨹', | |||
|  |                 trisb: '⧍', | |||
|  |                 tritime: '⨻', | |||
|  |                 trpezium: '⏢', | |||
|  |                 Tscr: '𝒯', | |||
|  |                 tscr: '𝓉', | |||
|  |                 TScy: 'Ц', | |||
|  |                 tscy: 'ц', | |||
|  |                 TSHcy: 'Ћ', | |||
|  |                 tshcy: 'ћ', | |||
|  |                 Tstrok: 'Ŧ', | |||
|  |                 tstrok: 'ŧ', | |||
|  |                 twixt: '≬', | |||
|  |                 twoheadleftarrow: '↞', | |||
|  |                 twoheadrightarrow: '↠', | |||
|  |                 Uacute: 'Ú', | |||
|  |                 uacute: 'ú', | |||
|  |                 uarr: '↑', | |||
|  |                 Uarr: '↟', | |||
|  |                 uArr: '⇑', | |||
|  |                 Uarrocir: '⥉', | |||
|  |                 Ubrcy: 'Ў', | |||
|  |                 ubrcy: 'ў', | |||
|  |                 Ubreve: 'Ŭ', | |||
|  |                 ubreve: 'ŭ', | |||
|  |                 Ucirc: 'Û', | |||
|  |                 ucirc: 'û', | |||
|  |                 Ucy: 'У', | |||
|  |                 ucy: 'у', | |||
|  |                 udarr: '⇅', | |||
|  |                 Udblac: 'Ű', | |||
|  |                 udblac: 'ű', | |||
|  |                 udhar: '⥮', | |||
|  |                 ufisht: '⥾', | |||
|  |                 Ufr: '𝔘', | |||
|  |                 ufr: '𝔲', | |||
|  |                 Ugrave: 'Ù', | |||
|  |                 ugrave: 'ù', | |||
|  |                 uHar: '⥣', | |||
|  |                 uharl: '↿', | |||
|  |                 uharr: '↾', | |||
|  |                 uhblk: '▀', | |||
|  |                 ulcorn: '⌜', | |||
|  |                 ulcorner: '⌜', | |||
|  |                 ulcrop: '⌏', | |||
|  |                 ultri: '◸', | |||
|  |                 Umacr: 'Ū', | |||
|  |                 umacr: 'ū', | |||
|  |                 uml: '¨', | |||
|  |                 UnderBar: '_', | |||
|  |                 UnderBrace: '⏟', | |||
|  |                 UnderBracket: '⎵', | |||
|  |                 UnderParenthesis: '⏝', | |||
|  |                 Union: '⋃', | |||
|  |                 UnionPlus: '⊎', | |||
|  |                 Uogon: 'Ų', | |||
|  |                 uogon: 'ų', | |||
|  |                 Uopf: '𝕌', | |||
|  |                 uopf: '𝕦', | |||
|  |                 UpArrowBar: '⤒', | |||
|  |                 uparrow: '↑', | |||
|  |                 UpArrow: '↑', | |||
|  |                 Uparrow: '⇑', | |||
|  |                 UpArrowDownArrow: '⇅', | |||
|  |                 updownarrow: '↕', | |||
|  |                 UpDownArrow: '↕', | |||
|  |                 Updownarrow: '⇕', | |||
|  |                 UpEquilibrium: '⥮', | |||
|  |                 upharpoonleft: '↿', | |||
|  |                 upharpoonright: '↾', | |||
|  |                 uplus: '⊎', | |||
|  |                 UpperLeftArrow: '↖', | |||
|  |                 UpperRightArrow: '↗', | |||
|  |                 upsi: 'υ', | |||
|  |                 Upsi: 'ϒ', | |||
|  |                 upsih: 'ϒ', | |||
|  |                 Upsilon: 'Υ', | |||
|  |                 upsilon: 'υ', | |||
|  |                 UpTeeArrow: '↥', | |||
|  |                 UpTee: '⊥', | |||
|  |                 upuparrows: '⇈', | |||
|  |                 urcorn: '⌝', | |||
|  |                 urcorner: '⌝', | |||
|  |                 urcrop: '⌎', | |||
|  |                 Uring: 'Ů', | |||
|  |                 uring: 'ů', | |||
|  |                 urtri: '◹', | |||
|  |                 Uscr: '𝒰', | |||
|  |                 uscr: '𝓊', | |||
|  |                 utdot: '⋰', | |||
|  |                 Utilde: 'Ũ', | |||
|  |                 utilde: 'ũ', | |||
|  |                 utri: '▵', | |||
|  |                 utrif: '▴', | |||
|  |                 uuarr: '⇈', | |||
|  |                 Uuml: 'Ü', | |||
|  |                 uuml: 'ü', | |||
|  |                 uwangle: '⦧', | |||
|  |                 vangrt: '⦜', | |||
|  |                 varepsilon: 'ϵ', | |||
|  |                 varkappa: 'ϰ', | |||
|  |                 varnothing: '∅', | |||
|  |                 varphi: 'ϕ', | |||
|  |                 varpi: 'ϖ', | |||
|  |                 varpropto: '∝', | |||
|  |                 varr: '↕', | |||
|  |                 vArr: '⇕', | |||
|  |                 varrho: 'ϱ', | |||
|  |                 varsigma: 'ς', | |||
|  |                 varsubsetneq: '⊊︀', | |||
|  |                 varsubsetneqq: '⫋︀', | |||
|  |                 varsupsetneq: '⊋︀', | |||
|  |                 varsupsetneqq: '⫌︀', | |||
|  |                 vartheta: 'ϑ', | |||
|  |                 vartriangleleft: '⊲', | |||
|  |                 vartriangleright: '⊳', | |||
|  |                 vBar: '⫨', | |||
|  |                 Vbar: '⫫', | |||
|  |                 vBarv: '⫩', | |||
|  |                 Vcy: 'В', | |||
|  |                 vcy: 'в', | |||
|  |                 vdash: '⊢', | |||
|  |                 vDash: '⊨', | |||
|  |                 Vdash: '⊩', | |||
|  |                 VDash: '⊫', | |||
|  |                 Vdashl: '⫦', | |||
|  |                 veebar: '⊻', | |||
|  |                 vee: '∨', | |||
|  |                 Vee: '⋁', | |||
|  |                 veeeq: '≚', | |||
|  |                 vellip: '⋮', | |||
|  |                 verbar: '|', | |||
|  |                 Verbar: '‖', | |||
|  |                 vert: '|', | |||
|  |                 Vert: '‖', | |||
|  |                 VerticalBar: '∣', | |||
|  |                 VerticalLine: '|', | |||
|  |                 VerticalSeparator: '❘', | |||
|  |                 VerticalTilde: '≀', | |||
|  |                 VeryThinSpace: ' ', | |||
|  |                 Vfr: '𝔙', | |||
|  |                 vfr: '𝔳', | |||
|  |                 vltri: '⊲', | |||
|  |                 vnsub: '⊂⃒', | |||
|  |                 vnsup: '⊃⃒', | |||
|  |                 Vopf: '𝕍', | |||
|  |                 vopf: '𝕧', | |||
|  |                 vprop: '∝', | |||
|  |                 vrtri: '⊳', | |||
|  |                 Vscr: '𝒱', | |||
|  |                 vscr: '𝓋', | |||
|  |                 vsubnE: '⫋︀', | |||
|  |                 vsubne: '⊊︀', | |||
|  |                 vsupnE: '⫌︀', | |||
|  |                 vsupne: '⊋︀', | |||
|  |                 Vvdash: '⊪', | |||
|  |                 vzigzag: '⦚', | |||
|  |                 Wcirc: 'Ŵ', | |||
|  |                 wcirc: 'ŵ', | |||
|  |                 wedbar: '⩟', | |||
|  |                 wedge: '∧', | |||
|  |                 Wedge: '⋀', | |||
|  |                 wedgeq: '≙', | |||
|  |                 weierp: '℘', | |||
|  |                 Wfr: '𝔚', | |||
|  |                 wfr: '𝔴', | |||
|  |                 Wopf: '𝕎', | |||
|  |                 wopf: '𝕨', | |||
|  |                 wp: '℘', | |||
|  |                 wr: '≀', | |||
|  |                 wreath: '≀', | |||
|  |                 Wscr: '𝒲', | |||
|  |                 wscr: '𝓌', | |||
|  |                 xcap: '⋂', | |||
|  |                 xcirc: '◯', | |||
|  |                 xcup: '⋃', | |||
|  |                 xdtri: '▽', | |||
|  |                 Xfr: '𝔛', | |||
|  |                 xfr: '𝔵', | |||
|  |                 xharr: '⟷', | |||
|  |                 xhArr: '⟺', | |||
|  |                 Xi: 'Ξ', | |||
|  |                 xi: 'ξ', | |||
|  |                 xlarr: '⟵', | |||
|  |                 xlArr: '⟸', | |||
|  |                 xmap: '⟼', | |||
|  |                 xnis: '⋻', | |||
|  |                 xodot: '⨀', | |||
|  |                 Xopf: '𝕏', | |||
|  |                 xopf: '𝕩', | |||
|  |                 xoplus: '⨁', | |||
|  |                 xotime: '⨂', | |||
|  |                 xrarr: '⟶', | |||
|  |                 xrArr: '⟹', | |||
|  |                 Xscr: '𝒳', | |||
|  |                 xscr: '𝓍', | |||
|  |                 xsqcup: '⨆', | |||
|  |                 xuplus: '⨄', | |||
|  |                 xutri: '△', | |||
|  |                 xvee: '⋁', | |||
|  |                 xwedge: '⋀', | |||
|  |                 Yacute: 'Ý', | |||
|  |                 yacute: 'ý', | |||
|  |                 YAcy: 'Я', | |||
|  |                 yacy: 'я', | |||
|  |                 Ycirc: 'Ŷ', | |||
|  |                 ycirc: 'ŷ', | |||
|  |                 Ycy: 'Ы', | |||
|  |                 ycy: 'ы', | |||
|  |                 yen: '¥', | |||
|  |                 Yfr: '𝔜', | |||
|  |                 yfr: '𝔶', | |||
|  |                 YIcy: 'Ї', | |||
|  |                 yicy: 'ї', | |||
|  |                 Yopf: '𝕐', | |||
|  |                 yopf: '𝕪', | |||
|  |                 Yscr: '𝒴', | |||
|  |                 yscr: '𝓎', | |||
|  |                 YUcy: 'Ю', | |||
|  |                 yucy: 'ю', | |||
|  |                 yuml: 'ÿ', | |||
|  |                 Yuml: 'Ÿ', | |||
|  |                 Zacute: 'Ź', | |||
|  |                 zacute: 'ź', | |||
|  |                 Zcaron: 'Ž', | |||
|  |                 zcaron: 'ž', | |||
|  |                 Zcy: 'З', | |||
|  |                 zcy: 'з', | |||
|  |                 Zdot: 'Ż', | |||
|  |                 zdot: 'ż', | |||
|  |                 zeetrf: 'ℨ', | |||
|  |                 ZeroWidthSpace: '', | |||
|  |                 Zeta: 'Ζ', | |||
|  |                 zeta: 'ζ', | |||
|  |                 zfr: '𝔷', | |||
|  |                 Zfr: 'ℨ', | |||
|  |                 ZHcy: 'Ж', | |||
|  |                 zhcy: 'ж', | |||
|  |                 zigrarr: '⇝', | |||
|  |                 zopf: '𝕫', | |||
|  |                 Zopf: 'ℤ', | |||
|  |                 Zscr: '𝒵', | |||
|  |                 zscr: '𝓏', | |||
|  |                 zwj: '', | |||
|  |                 zwnj: '' | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           54: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 var r = Array.prototype.slice.call(arguments, 1) | |||
|  |                 return ( | |||
|  |                   r.forEach(function(r) { | |||
|  |                     r && | |||
|  |                       Object.keys(r).forEach(function(t) { | |||
|  |                         e[t] = r[t] | |||
|  |                       }) | |||
|  |                   }), | |||
|  |                   e | |||
|  |                 ) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e) { | |||
|  |                 return Object.prototype.toString.call(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function o(e) { | |||
|  |                 return '[object String]' === s(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function i(e) { | |||
|  |                 return '[object Object]' === s(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function a(e) { | |||
|  |                 return '[object RegExp]' === s(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function c(e) { | |||
|  |                 return '[object Function]' === s(e) | |||
|  |               } | |||
|  | 
 | |||
|  |               function l(e) { | |||
|  |                 return e.replace(/[.?*+^$[\]\\(){}|-]/g, '\\$&') | |||
|  |               } | |||
|  | 
 | |||
|  |               function u(e) { | |||
|  |                 return Object.keys(e || {}).reduce(function(e, r) { | |||
|  |                   return e || k.hasOwnProperty(r) | |||
|  |                 }, !1) | |||
|  |               } | |||
|  | 
 | |||
|  |               function p(e) { | |||
|  |                 ;(e.__index__ = -1), (e.__text_cache__ = '') | |||
|  |               } | |||
|  | 
 | |||
|  |               function h(e) { | |||
|  |                 return function(r, t) { | |||
|  |                   var n = r.slice(t) | |||
|  |                   return e.test(n) ? n.match(e)[0].length : 0 | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               function f() { | |||
|  |                 return function(e, r) { | |||
|  |                   r.normalize(e) | |||
|  |                 } | |||
|  |               } | |||
|  | 
 | |||
|  |               function d(r) { | |||
|  |                 function t(e) { | |||
|  |                   return e.replace('%TLDS%', s.src_tlds) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 function n(e, r) { | |||
|  |                   throw new Error( | |||
|  |                     '(LinkifyIt) Invalid schema "' + e + '": ' + r | |||
|  |                   ) | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var s = (r.re = e('./lib/re')(r.__opts__)), | |||
|  |                   u = r.__tlds__.slice() | |||
|  |                 r.onCompile(), | |||
|  |                   r.__tlds_replaced__ || u.push(v), | |||
|  |                   u.push(s.src_xn), | |||
|  |                   (s.src_tlds = u.join('|')), | |||
|  |                   (s.email_fuzzy = RegExp(t(s.tpl_email_fuzzy), 'i')), | |||
|  |                   (s.link_fuzzy = RegExp(t(s.tpl_link_fuzzy), 'i')), | |||
|  |                   (s.link_no_ip_fuzzy = RegExp(t(s.tpl_link_no_ip_fuzzy), 'i')), | |||
|  |                   (s.host_fuzzy_test = RegExp(t(s.tpl_host_fuzzy_test), 'i')) | |||
|  |                 var d = [] | |||
|  |                 ;(r.__compiled__ = {}), | |||
|  |                   Object.keys(r.__schemas__).forEach(function(e) { | |||
|  |                     var t = r.__schemas__[e] | |||
|  |                     if (null !== t) { | |||
|  |                       var s = { validate: null, link: null } | |||
|  |                       return ( | |||
|  |                         (r.__compiled__[e] = s), | |||
|  |                         i(t) | |||
|  |                           ? (a(t.validate) | |||
|  |                               ? (s.validate = h(t.validate)) | |||
|  |                               : c(t.validate) | |||
|  |                               ? (s.validate = t.validate) | |||
|  |                               : n(e, t), | |||
|  |                             void (c(t.normalize) | |||
|  |                               ? (s.normalize = t.normalize) | |||
|  |                               : t.normalize | |||
|  |                               ? n(e, t) | |||
|  |                               : (s.normalize = f()))) | |||
|  |                           : o(t) | |||
|  |                           ? void d.push(e) | |||
|  |                           : void n(e, t) | |||
|  |                       ) | |||
|  |                     } | |||
|  |                   }), | |||
|  |                   d.forEach(function(e) { | |||
|  |                     r.__compiled__[r.__schemas__[e]] && | |||
|  |                       ((r.__compiled__[e].validate = | |||
|  |                         r.__compiled__[r.__schemas__[e]].validate), | |||
|  |                       (r.__compiled__[e].normalize = | |||
|  |                         r.__compiled__[r.__schemas__[e]].normalize)) | |||
|  |                   }), | |||
|  |                   (r.__compiled__[''] = { validate: null, normalize: f() }) | |||
|  |                 var m = Object.keys(r.__compiled__) | |||
|  |                   .filter(function(e) { | |||
|  |                     return e.length > 0 && r.__compiled__[e] | |||
|  |                   }) | |||
|  |                   .map(l) | |||
|  |                   .join('|') | |||
|  |                 ;(r.re.schema_test = RegExp( | |||
|  |                   '(^|(?!_)(?:[><]|' + s.src_ZPCc + '))(' + m + ')', | |||
|  |                   'i' | |||
|  |                 )), | |||
|  |                   (r.re.schema_search = RegExp( | |||
|  |                     '(^|(?!_)(?:[><]|' + s.src_ZPCc + '))(' + m + ')', | |||
|  |                     'ig' | |||
|  |                   )), | |||
|  |                   (r.re.pretest = RegExp( | |||
|  |                     '(' + | |||
|  |                       r.re.schema_test.source + | |||
|  |                       ')|(' + | |||
|  |                       r.re.host_fuzzy_test.source + | |||
|  |                       ')|@', | |||
|  |                     'i' | |||
|  |                   )), | |||
|  |                   p(r) | |||
|  |               } | |||
|  | 
 | |||
|  |               function m(e, r) { | |||
|  |                 var t = e.__index__, | |||
|  |                   n = e.__last_index__, | |||
|  |                   s = e.__text_cache__.slice(t, n) | |||
|  |                 ;(this.schema = e.__schema__.toLowerCase()), | |||
|  |                   (this.index = t + r), | |||
|  |                   (this.lastIndex = n + r), | |||
|  |                   (this.raw = s), | |||
|  |                   (this.text = s), | |||
|  |                   (this.url = s) | |||
|  |               } | |||
|  | 
 | |||
|  |               function _(e, r) { | |||
|  |                 var t = new m(e, r) | |||
|  |                 return e.__compiled__[t.schema].normalize(t, e), t | |||
|  |               } | |||
|  | 
 | |||
|  |               function g(e, r) { | |||
|  |                 return this instanceof g | |||
|  |                   ? (r || (u(e) && ((r = e), (e = {}))), | |||
|  |                     (this.__opts__ = n({}, k, r)), | |||
|  |                     (this.__index__ = -1), | |||
|  |                     (this.__last_index__ = -1), | |||
|  |                     (this.__schema__ = ''), | |||
|  |                     (this.__text_cache__ = ''), | |||
|  |                     (this.__schemas__ = n({}, b, e)), | |||
|  |                     (this.__compiled__ = {}), | |||
|  |                     (this.__tlds__ = x), | |||
|  |                     (this.__tlds_replaced__ = !1), | |||
|  |                     (this.re = {}), | |||
|  |                     void d(this)) | |||
|  |                   : new g(e, r) | |||
|  |               } | |||
|  | 
 | |||
|  |               var k = { fuzzyLink: !0, fuzzyEmail: !0, fuzzyIP: !1 }, | |||
|  |                 b = { | |||
|  |                   'http:': { | |||
|  |                     validate: function(e, r, t) { | |||
|  |                       var n = e.slice(r) | |||
|  |                       return ( | |||
|  |                         t.re.http || | |||
|  |                           (t.re.http = new RegExp( | |||
|  |                             '^\\/\\/' + | |||
|  |                               t.re.src_auth + | |||
|  |                               t.re.src_host_port_strict + | |||
|  |                               t.re.src_path, | |||
|  |                             'i' | |||
|  |                           )), | |||
|  |                         t.re.http.test(n) ? n.match(t.re.http)[0].length : 0 | |||
|  |                       ) | |||
|  |                     } | |||
|  |                   }, | |||
|  |                   'https:': 'http:', | |||
|  |                   'ftp:': 'http:', | |||
|  |                   '//': { | |||
|  |                     validate: function(e, r, t) { | |||
|  |                       var n = e.slice(r) | |||
|  |                       return ( | |||
|  |                         t.re.no_http || | |||
|  |                           (t.re.no_http = new RegExp( | |||
|  |                             '^' + | |||
|  |                               t.re.src_auth + | |||
|  |                               '(?:localhost|(?:(?:' + | |||
|  |                               t.re.src_domain + | |||
|  |                               ')\\.)+' + | |||
|  |                               t.re.src_domain_root + | |||
|  |                               ')' + | |||
|  |                               t.re.src_port + | |||
|  |                               t.re.src_host_terminator + | |||
|  |                               t.re.src_path, | |||
|  |                             'i' | |||
|  |                           )), | |||
|  |                         t.re.no_http.test(n) | |||
|  |                           ? r >= 3 && ':' === e[r - 3] | |||
|  |                             ? 0 | |||
|  |                             : r >= 3 && '/' === e[r - 3] | |||
|  |                             ? 0 | |||
|  |                             : n.match(t.re.no_http)[0].length | |||
|  |                           : 0 | |||
|  |                       ) | |||
|  |                     } | |||
|  |                   }, | |||
|  |                   'mailto:': { | |||
|  |                     validate: function(e, r, t) { | |||
|  |                       var n = e.slice(r) | |||
|  |                       return ( | |||
|  |                         t.re.mailto || | |||
|  |                           (t.re.mailto = new RegExp( | |||
|  |                             '^' + | |||
|  |                               t.re.src_email_name + | |||
|  |                               '@' + | |||
|  |                               t.re.src_host_strict, | |||
|  |                             'i' | |||
|  |                           )), | |||
|  |                         t.re.mailto.test(n) ? n.match(t.re.mailto)[0].length : 0 | |||
|  |                       ) | |||
|  |                     } | |||
|  |                   } | |||
|  |                 }, | |||
|  |                 v = | |||
|  |                   'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]', | |||
|  |                 x = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split( | |||
|  |                   '|' | |||
|  |                 ) | |||
|  |               ;(g.prototype.add = function(e, r) { | |||
|  |                 return (this.__schemas__[e] = r), d(this), this | |||
|  |               }), | |||
|  |                 (g.prototype.set = function(e) { | |||
|  |                   return (this.__opts__ = n(this.__opts__, e)), this | |||
|  |                 }), | |||
|  |                 (g.prototype.test = function(e) { | |||
|  |                   if ( | |||
|  |                     ((this.__text_cache__ = e), | |||
|  |                     (this.__index__ = -1), | |||
|  |                     !e.length) | |||
|  |                   ) | |||
|  |                     return !1 | |||
|  |                   var r, t, n, s, o, i, a, c, l | |||
|  |                   if (this.re.schema_test.test(e)) | |||
|  |                     for ( | |||
|  |                       a = this.re.schema_search, a.lastIndex = 0; | |||
|  |                       null !== (r = a.exec(e)); | |||
|  | 
 | |||
|  |                     ) | |||
|  |                       if ((s = this.testSchemaAt(e, r[2], a.lastIndex))) { | |||
|  |                         ;(this.__schema__ = r[2]), | |||
|  |                           (this.__index__ = r.index + r[1].length), | |||
|  |                           (this.__last_index__ = r.index + r[0].length + s) | |||
|  |                         break | |||
|  |                       } | |||
|  |                   return ( | |||
|  |                     this.__opts__.fuzzyLink && | |||
|  |                       this.__compiled__['http:'] && | |||
|  |                       ((c = e.search(this.re.host_fuzzy_test)), | |||
|  |                       c >= 0 && | |||
|  |                         (this.__index__ < 0 || c < this.__index__) && | |||
|  |                         null !== | |||
|  |                           (t = e.match( | |||
|  |                             this.__opts__.fuzzyIP | |||
|  |                               ? this.re.link_fuzzy | |||
|  |                               : this.re.link_no_ip_fuzzy | |||
|  |                           )) && | |||
|  |                         ((o = t.index + t[1].length), | |||
|  |                         (this.__index__ < 0 || o < this.__index__) && | |||
|  |                           ((this.__schema__ = ''), | |||
|  |                           (this.__index__ = o), | |||
|  |                           (this.__last_index__ = t.index + t[0].length)))), | |||
|  |                     this.__opts__.fuzzyEmail && | |||
|  |                       this.__compiled__['mailto:'] && | |||
|  |                       ((l = e.indexOf('@')), | |||
|  |                       l >= 0 && | |||
|  |                         null !== (n = e.match(this.re.email_fuzzy)) && | |||
|  |                         ((o = n.index + n[1].length), | |||
|  |                         (i = n.index + n[0].length), | |||
|  |                         (this.__index__ < 0 || | |||
|  |                           o < this.__index__ || | |||
|  |                           (o === this.__index__ && i > this.__last_index__)) && | |||
|  |                           ((this.__schema__ = 'mailto:'), | |||
|  |                           (this.__index__ = o), | |||
|  |                           (this.__last_index__ = i)))), | |||
|  |                     this.__index__ >= 0 | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (g.prototype.pretest = function(e) { | |||
|  |                   return this.re.pretest.test(e) | |||
|  |                 }), | |||
|  |                 (g.prototype.testSchemaAt = function(e, r, t) { | |||
|  |                   return this.__compiled__[r.toLowerCase()] | |||
|  |                     ? this.__compiled__[r.toLowerCase()].validate(e, t, this) | |||
|  |                     : 0 | |||
|  |                 }), | |||
|  |                 (g.prototype.match = function(e) { | |||
|  |                   var r = 0, | |||
|  |                     t = [] | |||
|  |                   this.__index__ >= 0 && | |||
|  |                     this.__text_cache__ === e && | |||
|  |                     (t.push(_(this, r)), (r = this.__last_index__)) | |||
|  |                   for (var n = r ? e.slice(r) : e; this.test(n); ) | |||
|  |                     t.push(_(this, r)), | |||
|  |                       (n = n.slice(this.__last_index__)), | |||
|  |                       (r += this.__last_index__) | |||
|  |                   return t.length ? t : null | |||
|  |                 }), | |||
|  |                 (g.prototype.tlds = function(e, r) { | |||
|  |                   return ( | |||
|  |                     (e = Array.isArray(e) ? e : [e]), | |||
|  |                     r | |||
|  |                       ? ((this.__tlds__ = this.__tlds__ | |||
|  |                           .concat(e) | |||
|  |                           .sort() | |||
|  |                           .filter(function(e, r, t) { | |||
|  |                             return e !== t[r - 1] | |||
|  |                           }) | |||
|  |                           .reverse()), | |||
|  |                         d(this), | |||
|  |                         this) | |||
|  |                       : ((this.__tlds__ = e.slice()), | |||
|  |                         (this.__tlds_replaced__ = !0), | |||
|  |                         d(this), | |||
|  |                         this) | |||
|  |                   ) | |||
|  |                 }), | |||
|  |                 (g.prototype.normalize = function(e) { | |||
|  |                   e.schema || (e.url = 'http://' + e.url), | |||
|  |                     'mailto:' !== e.schema || | |||
|  |                       /^mailto:/i.test(e.url) || | |||
|  |                       (e.url = 'mailto:' + e.url) | |||
|  |                 }), | |||
|  |                 (g.prototype.onCompile = function() {}), | |||
|  |                 (r.exports = g) | |||
|  |             }, | |||
|  |             { './lib/re': 55 } | |||
|  |           ], | |||
|  |           55: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(r) { | |||
|  |                 var t = {} | |||
|  |                 return ( | |||
|  |                   (t.src_Any = e('uc.micro/properties/Any/regex').source), | |||
|  |                   (t.src_Cc = e('uc.micro/categories/Cc/regex').source), | |||
|  |                   (t.src_Z = e('uc.micro/categories/Z/regex').source), | |||
|  |                   (t.src_P = e('uc.micro/categories/P/regex').source), | |||
|  |                   (t.src_ZPCc = [t.src_Z, t.src_P, t.src_Cc].join('|')), | |||
|  |                   (t.src_ZCc = [t.src_Z, t.src_Cc].join('|')), | |||
|  |                   (t.src_pseudo_letter = | |||
|  |                     '(?:(?!>|<|' + t.src_ZPCc + ')' + t.src_Any + ')'), | |||
|  |                   (t.src_ip4 = | |||
|  |                     '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'), | |||
|  |                   (t.src_auth = '(?:(?:(?!' + t.src_ZCc + '|[@/]).)+@)?'), | |||
|  |                   (t.src_port = | |||
|  |                     '(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?'), | |||
|  |                   (t.src_host_terminator = | |||
|  |                     '(?=$|>|<|' + | |||
|  |                     t.src_ZPCc + | |||
|  |                     ')(?!-|_|:\\d|\\.-|\\.(?!$|' + | |||
|  |                     t.src_ZPCc + | |||
|  |                     '))'), | |||
|  |                   (t.src_path = | |||
|  |                     '(?:[/?#](?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[()[\\]{}.,"\'?!\\-<>]).|\\[(?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|\\]).)*\\]|\\((?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[)]).)*\\)|\\{(?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[}]).)*\\}|\\"(?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|["]).)+\\"|\\\'(?:(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     "|[']).)+\\'|\\'(?=" + | |||
|  |                     t.src_pseudo_letter + | |||
|  |                     '|[-]).|\\.{2,3}[a-zA-Z0-9%/]|\\.(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[.]).|' + | |||
|  |                     (r && r['---'] ? '\\-(?!--(?:[^-]|$))(?:-*)|' : '\\-+|') + | |||
|  |                     '\\,(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     ').|\\!(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[!]).|\\?(?!' + | |||
|  |                     t.src_ZCc + | |||
|  |                     '|[?]).)+|\\/)?'), | |||
|  |                   (t.src_email_name = '[\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]+'), | |||
|  |                   (t.src_xn = 'xn--[a-z0-9\\-]{1,59}'), | |||
|  |                   (t.src_domain_root = | |||
|  |                     '(?:' + t.src_xn + '|' + t.src_pseudo_letter + '{1,63})'), | |||
|  |                   (t.src_domain = | |||
|  |                     '(?:' + | |||
|  |                     t.src_xn + | |||
|  |                     '|(?:' + | |||
|  |                     t.src_pseudo_letter + | |||
|  |                     ')|(?:' + | |||
|  |                     t.src_pseudo_letter + | |||
|  |                     '(?:-(?!-)|' + | |||
|  |                     t.src_pseudo_letter + | |||
|  |                     '){0,61}' + | |||
|  |                     t.src_pseudo_letter + | |||
|  |                     '))'), | |||
|  |                   (t.src_host = | |||
|  |                     '(?:(?:(?:(?:' + | |||
|  |                     t.src_domain + | |||
|  |                     ')\\.)*' + | |||
|  |                     t.src_domain_root + | |||
|  |                     '))'), | |||
|  |                   (t.tpl_host_fuzzy = | |||
|  |                     '(?:' + | |||
|  |                     t.src_ip4 + | |||
|  |                     '|(?:(?:(?:' + | |||
|  |                     t.src_domain + | |||
|  |                     ')\\.)+(?:%TLDS%)))'), | |||
|  |                   (t.tpl_host_no_ip_fuzzy = | |||
|  |                     '(?:(?:(?:' + t.src_domain + ')\\.)+(?:%TLDS%))'), | |||
|  |                   (t.src_host_strict = t.src_host + t.src_host_terminator), | |||
|  |                   (t.tpl_host_fuzzy_strict = | |||
|  |                     t.tpl_host_fuzzy + t.src_host_terminator), | |||
|  |                   (t.src_host_port_strict = | |||
|  |                     t.src_host + t.src_port + t.src_host_terminator), | |||
|  |                   (t.tpl_host_port_fuzzy_strict = | |||
|  |                     t.tpl_host_fuzzy + t.src_port + t.src_host_terminator), | |||
|  |                   (t.tpl_host_port_no_ip_fuzzy_strict = | |||
|  |                     t.tpl_host_no_ip_fuzzy + | |||
|  |                     t.src_port + | |||
|  |                     t.src_host_terminator), | |||
|  |                   (t.tpl_host_fuzzy_test = | |||
|  |                     'localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:' + | |||
|  |                     t.src_ZPCc + | |||
|  |                     '|>|$))'), | |||
|  |                   (t.tpl_email_fuzzy = | |||
|  |                     '(^|<|>|\\(|' + | |||
|  |                     t.src_ZCc + | |||
|  |                     ')(' + | |||
|  |                     t.src_email_name + | |||
|  |                     '@' + | |||
|  |                     t.tpl_host_fuzzy_strict + | |||
|  |                     ')'), | |||
|  |                   (t.tpl_link_fuzzy = | |||
|  |                     '(^|(?![.:/\\-_@])(?:[$+<=>^`|]|' + | |||
|  |                     t.src_ZPCc + | |||
|  |                     '))((?![$+<=>^`|])' + | |||
|  |                     t.tpl_host_port_fuzzy_strict + | |||
|  |                     t.src_path + | |||
|  |                     ')'), | |||
|  |                   (t.tpl_link_no_ip_fuzzy = | |||
|  |                     '(^|(?![.:/\\-_@])(?:[$+<=>^`|]|' + | |||
|  |                     t.src_ZPCc + | |||
|  |                     '))((?![$+<=>^`|])' + | |||
|  |                     t.tpl_host_port_no_ip_fuzzy_strict + | |||
|  |                     t.src_path + | |||
|  |                     ')'), | |||
|  |                   t | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             { | |||
|  |               'uc.micro/categories/Cc/regex': 61, | |||
|  |               'uc.micro/categories/P/regex': 63, | |||
|  |               'uc.micro/categories/Z/regex': 64, | |||
|  |               'uc.micro/properties/Any/regex': 66 | |||
|  |             } | |||
|  |           ], | |||
|  |           56: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n = o[e] | |||
|  |                 if (n) return n | |||
|  |                 for (n = o[e] = [], r = 0; r < 128; r++) | |||
|  |                   (t = String.fromCharCode(r)), n.push(t) | |||
|  |                 for (r = 0; r < e.length; r++) | |||
|  |                   (t = e.charCodeAt(r)), | |||
|  |                     (n[t] = | |||
|  |                       '%' + ('0' + t.toString(16).toUpperCase()).slice(-2)) | |||
|  |                 return n | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e, r) { | |||
|  |                 var t | |||
|  |                 return ( | |||
|  |                   'string' != typeof r && (r = s.defaultChars), | |||
|  |                   (t = n(r)), | |||
|  |                   e.replace(/(%[a-f0-9]{2})+/gi, function(e) { | |||
|  |                     var r, | |||
|  |                       n, | |||
|  |                       s, | |||
|  |                       o, | |||
|  |                       i, | |||
|  |                       a, | |||
|  |                       c, | |||
|  |                       l = '' | |||
|  |                     for (r = 0, n = e.length; r < n; r += 3) | |||
|  |                       (s = parseInt(e.slice(r + 1, r + 3), 16)), | |||
|  |                         s < 128 | |||
|  |                           ? (l += t[s]) | |||
|  |                           : 192 === (224 & s) && | |||
|  |                             r + 3 < n && | |||
|  |                             ((o = parseInt(e.slice(r + 4, r + 6), 16)), | |||
|  |                             128 === (192 & o)) | |||
|  |                           ? ((c = ((s << 6) & 1984) | (63 & o)), | |||
|  |                             (l += c < 128 ? '<27><>' : String.fromCharCode(c)), | |||
|  |                             (r += 3)) | |||
|  |                           : 224 === (240 & s) && | |||
|  |                             r + 6 < n && | |||
|  |                             ((o = parseInt(e.slice(r + 4, r + 6), 16)), | |||
|  |                             (i = parseInt(e.slice(r + 7, r + 9), 16)), | |||
|  |                             128 === (192 & o) && 128 === (192 & i)) | |||
|  |                           ? ((c = | |||
|  |                               ((s << 12) & 61440) | | |||
|  |                               ((o << 6) & 4032) | | |||
|  |                               (63 & i)), | |||
|  |                             (l += | |||
|  |                               c < 2048 || (c >= 55296 && c <= 57343) | |||
|  |                                 ? '<27><><EFBFBD>' | |||
|  |                                 : String.fromCharCode(c)), | |||
|  |                             (r += 6)) | |||
|  |                           : 240 === (248 & s) && | |||
|  |                             r + 9 < n && | |||
|  |                             ((o = parseInt(e.slice(r + 4, r + 6), 16)), | |||
|  |                             (i = parseInt(e.slice(r + 7, r + 9), 16)), | |||
|  |                             (a = parseInt(e.slice(r + 10, r + 12), 16)), | |||
|  |                             128 === (192 & o) && | |||
|  |                               128 === (192 & i) && | |||
|  |                               128 === (192 & a)) | |||
|  |                           ? ((c = | |||
|  |                               ((s << 18) & 1835008) | | |||
|  |                               ((o << 12) & 258048) | | |||
|  |                               ((i << 6) & 4032) | | |||
|  |                               (63 & a)), | |||
|  |                             c < 65536 || c > 1114111 | |||
|  |                               ? (l += '<27><><EFBFBD><EFBFBD>') | |||
|  |                               : ((c -= 65536), | |||
|  |                                 (l += String.fromCharCode( | |||
|  |                                   55296 + (c >> 10), | |||
|  |                                   56320 + (1023 & c) | |||
|  |                                 ))), | |||
|  |                             (r += 9)) | |||
|  |                           : (l += '<27>') | |||
|  |                     return l | |||
|  |                   }) | |||
|  |                 ) | |||
|  |               } | |||
|  | 
 | |||
|  |               var o = {} | |||
|  |               ;(s.defaultChars = ';/?:@&=+$,#'), | |||
|  |                 (s.componentChars = ''), | |||
|  |                 (r.exports = s) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           57: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n(e) { | |||
|  |                 var r, | |||
|  |                   t, | |||
|  |                   n = o[e] | |||
|  |                 if (n) return n | |||
|  |                 for (n = o[e] = [], r = 0; r < 128; r++) | |||
|  |                   (t = String.fromCharCode(r)), | |||
|  |                     /^[0-9a-z]$/i.test(t) | |||
|  |                       ? n.push(t) | |||
|  |                       : n.push( | |||
|  |                           '%' + ('0' + r.toString(16).toUpperCase()).slice(-2) | |||
|  |                         ) | |||
|  |                 for (r = 0; r < e.length; r++) n[e.charCodeAt(r)] = e[r] | |||
|  |                 return n | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e, r, t) { | |||
|  |                 var o, | |||
|  |                   i, | |||
|  |                   a, | |||
|  |                   c, | |||
|  |                   l, | |||
|  |                   u = '' | |||
|  |                 for ( | |||
|  |                   'string' != typeof r && ((t = r), (r = s.defaultChars)), | |||
|  |                     'undefined' == typeof t && (t = !0), | |||
|  |                     l = n(r), | |||
|  |                     o = 0, | |||
|  |                     i = e.length; | |||
|  |                   o < i; | |||
|  |                   o++ | |||
|  |                 ) | |||
|  |                   if ( | |||
|  |                     ((a = e.charCodeAt(o)), | |||
|  |                     t && | |||
|  |                       37 === a && | |||
|  |                       o + 2 < i && | |||
|  |                       /^[0-9a-f]{2}$/i.test(e.slice(o + 1, o + 3))) | |||
|  |                   ) | |||
|  |                     (u += e.slice(o, o + 3)), (o += 2) | |||
|  |                   else if (a < 128) u += l[a] | |||
|  |                   else if (a >= 55296 && a <= 57343) { | |||
|  |                     if ( | |||
|  |                       a >= 55296 && | |||
|  |                       a <= 56319 && | |||
|  |                       o + 1 < i && | |||
|  |                       ((c = e.charCodeAt(o + 1)), c >= 56320 && c <= 57343) | |||
|  |                     ) { | |||
|  |                       ;(u += encodeURIComponent(e[o] + e[o + 1])), o++ | |||
|  |                       continue | |||
|  |                     } | |||
|  |                     u += '%EF%BF%BD' | |||
|  |                   } else u += encodeURIComponent(e[o]) | |||
|  |                 return u | |||
|  |               } | |||
|  | 
 | |||
|  |               var o = {} | |||
|  |               ;(s.defaultChars = ";/?:@&=+$,-_.!~*'()#"), | |||
|  |                 (s.componentChars = "-_.!~*'()"), | |||
|  |                 (r.exports = s) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           58: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = function(e) { | |||
|  |                 var r = '' | |||
|  |                 return ( | |||
|  |                   (r += e.protocol || ''), | |||
|  |                   (r += e.slashes ? '//' : ''), | |||
|  |                   (r += e.auth ? e.auth + '@' : ''), | |||
|  |                   (r += | |||
|  |                     e.hostname && e.hostname.indexOf(':') !== -1 | |||
|  |                       ? '[' + e.hostname + ']' | |||
|  |                       : e.hostname || ''), | |||
|  |                   (r += e.port ? ':' + e.port : ''), | |||
|  |                   (r += e.pathname || ''), | |||
|  |                   (r += e.search || ''), | |||
|  |                   (r += e.hash || '') | |||
|  |                 ) | |||
|  |               } | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           59: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               ;(r.exports.encode = e('./encode')), | |||
|  |                 (r.exports.decode = e('./decode')), | |||
|  |                 (r.exports.format = e('./format')), | |||
|  |                 (r.exports.parse = e('./parse')) | |||
|  |             }, | |||
|  |             { './decode': 56, './encode': 57, './format': 58, './parse': 60 } | |||
|  |           ], | |||
|  |           60: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               function n() { | |||
|  |                 ;(this.protocol = null), | |||
|  |                   (this.slashes = null), | |||
|  |                   (this.auth = null), | |||
|  |                   (this.port = null), | |||
|  |                   (this.hostname = null), | |||
|  |                   (this.hash = null), | |||
|  |                   (this.search = null), | |||
|  |                   (this.pathname = null) | |||
|  |               } | |||
|  | 
 | |||
|  |               function s(e, r) { | |||
|  |                 if (e && e instanceof n) return e | |||
|  |                 var t = new n() | |||
|  |                 return t.parse(e, r), t | |||
|  |               } | |||
|  | 
 | |||
|  |               var o = /^([a-z0-9.+-]+:)/i, | |||
|  |                 i = /:[0-9]*$/, | |||
|  |                 a = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, | |||
|  |                 c = ['<', '>', '"', '`', ' ', '\r', '\n', '	'], | |||
|  |                 l = ['{', '}', '|', '\\', '^', '`'].concat(c), | |||
|  |                 u = ["'"].concat(l), | |||
|  |                 p = ['%', '/', '?', ';', '#'].concat(u), | |||
|  |                 h = ['/', '?', '#'], | |||
|  |                 f = 255, | |||
|  |                 d = /^[+a-z0-9A-Z_-]{0,63}$/, | |||
|  |                 m = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, | |||
|  |                 _ = { javascript: !0, 'javascript:': !0 }, | |||
|  |                 g = { | |||
|  |                   http: !0, | |||
|  |                   https: !0, | |||
|  |                   ftp: !0, | |||
|  |                   gopher: !0, | |||
|  |                   file: !0, | |||
|  |                   'http:': !0, | |||
|  |                   'https:': !0, | |||
|  |                   'ftp:': !0, | |||
|  |                   'gopher:': !0, | |||
|  |                   'file:': !0 | |||
|  |                 } | |||
|  |               ;(n.prototype.parse = function(e, r) { | |||
|  |                 var t, | |||
|  |                   n, | |||
|  |                   s, | |||
|  |                   i, | |||
|  |                   c, | |||
|  |                   l = e | |||
|  |                 if (((l = l.trim()), !r && 1 === e.split('#').length)) { | |||
|  |                   var u = a.exec(l) | |||
|  |                   if (u) | |||
|  |                     return ( | |||
|  |                       (this.pathname = u[1]), u[2] && (this.search = u[2]), this | |||
|  |                     ) | |||
|  |                 } | |||
|  |                 var k = o.exec(l) | |||
|  |                 if ( | |||
|  |                   (k && | |||
|  |                     ((k = k[0]), | |||
|  |                     (s = k.toLowerCase()), | |||
|  |                     (this.protocol = k), | |||
|  |                     (l = l.substr(k.length))), | |||
|  |                   (r || k || l.match(/^\/\/[^@\/]+@[^@\/]+/)) && | |||
|  |                     ((c = '//' === l.substr(0, 2)), | |||
|  |                     !c || | |||
|  |                       (k && _[k]) || | |||
|  |                       ((l = l.substr(2)), (this.slashes = !0))), | |||
|  |                   !_[k] && (c || (k && !g[k]))) | |||
|  |                 ) { | |||
|  |                   var b = -1 | |||
|  |                   for (t = 0; t < h.length; t++) | |||
|  |                     (i = l.indexOf(h[t])), | |||
|  |                       i !== -1 && (b === -1 || i < b) && (b = i) | |||
|  |                   var v, x | |||
|  |                   for ( | |||
|  |                     x = b === -1 ? l.lastIndexOf('@') : l.lastIndexOf('@', b), | |||
|  |                       x !== -1 && | |||
|  |                         ((v = l.slice(0, x)), | |||
|  |                         (l = l.slice(x + 1)), | |||
|  |                         (this.auth = v)), | |||
|  |                       b = -1, | |||
|  |                       t = 0; | |||
|  |                     t < p.length; | |||
|  |                     t++ | |||
|  |                   ) | |||
|  |                     (i = l.indexOf(p[t])), | |||
|  |                       i !== -1 && (b === -1 || i < b) && (b = i) | |||
|  |                   b === -1 && (b = l.length), ':' === l[b - 1] && b-- | |||
|  |                   var y = l.slice(0, b) | |||
|  |                   ;(l = l.slice(b)), | |||
|  |                     this.parseHost(y), | |||
|  |                     (this.hostname = this.hostname || '') | |||
|  |                   var C = | |||
|  |                     '[' === this.hostname[0] && | |||
|  |                     ']' === this.hostname[this.hostname.length - 1] | |||
|  |                   if (!C) { | |||
|  |                     var A = this.hostname.split(/\./) | |||
|  |                     for (t = 0, n = A.length; t < n; t++) { | |||
|  |                       var w = A[t] | |||
|  |                       if (w && !w.match(d)) { | |||
|  |                         for (var D = '', q = 0, E = w.length; q < E; q++) | |||
|  |                           D += w.charCodeAt(q) > 127 ? 'x' : w[q] | |||
|  |                         if (!D.match(d)) { | |||
|  |                           var S = A.slice(0, t), | |||
|  |                             F = A.slice(t + 1), | |||
|  |                             z = w.match(m) | |||
|  |                           z && (S.push(z[1]), F.unshift(z[2])), | |||
|  |                             F.length && (l = F.join('.') + l), | |||
|  |                             (this.hostname = S.join('.')) | |||
|  |                           break | |||
|  |                         } | |||
|  |                       } | |||
|  |                     } | |||
|  |                   } | |||
|  |                   this.hostname.length > f && (this.hostname = ''), | |||
|  |                     C && | |||
|  |                       (this.hostname = this.hostname.substr( | |||
|  |                         1, | |||
|  |                         this.hostname.length - 2 | |||
|  |                       )) | |||
|  |                 } | |||
|  |                 var L = l.indexOf('#') | |||
|  |                 L !== -1 && ((this.hash = l.substr(L)), (l = l.slice(0, L))) | |||
|  |                 var T = l.indexOf('?') | |||
|  |                 return ( | |||
|  |                   T !== -1 && | |||
|  |                     ((this.search = l.substr(T)), (l = l.slice(0, T))), | |||
|  |                   l && (this.pathname = l), | |||
|  |                   g[s] && | |||
|  |                     this.hostname && | |||
|  |                     !this.pathname && | |||
|  |                     (this.pathname = ''), | |||
|  |                   this | |||
|  |                 ) | |||
|  |               }), | |||
|  |                 (n.prototype.parseHost = function(e) { | |||
|  |                   var r = i.exec(e) | |||
|  |                   r && | |||
|  |                     ((r = r[0]), | |||
|  |                     ':' !== r && (this.port = r.substr(1)), | |||
|  |                     (e = e.substr(0, e.length - r.length))), | |||
|  |                     e && (this.hostname = e) | |||
|  |                 }), | |||
|  |                 (r.exports = s) | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           61: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = /[\0-\x1F\x7F-\x9F]/ | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           62: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804\uDCBD|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/ | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           63: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/ | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           64: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/ | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           65: [ | |||
|  |             function(e, r, t) { | |||
|  |               ;(r.exports.Any = e('./properties/Any/regex')), | |||
|  |                 (r.exports.Cc = e('./categories/Cc/regex')), | |||
|  |                 (r.exports.Cf = e('./categories/Cf/regex')), | |||
|  |                 (r.exports.P = e('./categories/P/regex')), | |||
|  |                 (r.exports.Z = e('./categories/Z/regex')) | |||
|  |             }, | |||
|  |             { | |||
|  |               './categories/Cc/regex': 61, | |||
|  |               './categories/Cf/regex': 62, | |||
|  |               './categories/P/regex': 63, | |||
|  |               './categories/Z/regex': 64, | |||
|  |               './properties/Any/regex': 66 | |||
|  |             } | |||
|  |           ], | |||
|  |           66: [ | |||
|  |             function(e, r, t) { | |||
|  |               r.exports = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/ | |||
|  |             }, | |||
|  |             {} | |||
|  |           ], | |||
|  |           67: [ | |||
|  |             function(e, r, t) { | |||
|  |               'use strict' | |||
|  |               r.exports = e('./lib/') | |||
|  |             }, | |||
|  |             { './lib/': 9 } | |||
|  |           ] | |||
|  |         }, | |||
|  |         {}, | |||
|  |         [67] | |||
|  |       )(67) | |||
|  |     }) | |||
|  |     define('Core/KnockoutMarkdownBinding', [ | |||
|  |       'markdown-it-sanitizer', | |||
|  |       'markdown-it' | |||
|  |     ], function(MarkdownItSanitizer, MarkdownIt) { | |||
|  |       'use strict' | |||
|  |       var htmlTagRegex = /<html(.|\s)*>(.|\s)*<\/html>/im | |||
|  |       var md = new MarkdownIt({ html: true, linkify: true }) | |||
|  |       md.use(MarkdownItSanitizer, { | |||
|  |         imageClass: '', | |||
|  |         removeUnbalanced: false, | |||
|  |         removeUnknown: false | |||
|  |       }) | |||
|  |       var KnockoutMarkdownBinding = { | |||
|  |         register: function(Knockout) { | |||
|  |           Knockout.bindingHandlers.markdown = { | |||
|  |             init: function() { | |||
|  |               return { controlsDescendantBindings: true } | |||
|  |             }, | |||
|  |             update: function(element, valueAccessor) { | |||
|  |               while (element.firstChild) { | |||
|  |                 Knockout.removeNode(element.firstChild) | |||
|  |               } | |||
|  |               var rawText = Knockout.unwrap(valueAccessor()) | |||
|  |               var html | |||
|  |               if (htmlTagRegex.test(rawText)) { | |||
|  |                 html = rawText | |||
|  |               } else { | |||
|  |                 html = md.render(rawText) | |||
|  |               } | |||
|  |               var nodes = Knockout.utils.parseHtmlFragment(html, element) | |||
|  |               element.className = element.className + ' markdown' | |||
|  |               for (var i = 0; i < nodes.length; ++i) { | |||
|  |                 var node = nodes[i] | |||
|  |                 setAnchorTargets(node) | |||
|  |                 element.appendChild(node) | |||
|  |               } | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function setAnchorTargets(element) { | |||
|  |         if (element instanceof HTMLAnchorElement) { | |||
|  |           element.target = '_blank' | |||
|  |         } | |||
|  |         if (element.childNodes && element.childNodes.length > 0) { | |||
|  |           for (var i = 0; i < element.childNodes.length; ++i) { | |||
|  |             setAnchorTargets(element.childNodes[i]) | |||
|  |           } | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       return KnockoutMarkdownBinding | |||
|  |     }) | |||
|  |     !(function(a, b, c, d) { | |||
|  |       'use strict' | |||
|  |       function e(a, b, c) { | |||
|  |         return setTimeout(j(a, c), b) | |||
|  |       } | |||
|  | 
 | |||
|  |       function f(a, b, c) { | |||
|  |         return Array.isArray(a) ? (g(a, c[b], c), !0) : !1 | |||
|  |       } | |||
|  | 
 | |||
|  |       function g(a, b, c) { | |||
|  |         var e | |||
|  |         if (a) | |||
|  |           if (a.forEach) a.forEach(b, c) | |||
|  |           else if (a.length !== d) | |||
|  |             for (e = 0; e < a.length; ) b.call(c, a[e], e, a), e++ | |||
|  |           else for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a) | |||
|  |       } | |||
|  | 
 | |||
|  |       function h(b, c, d) { | |||
|  |         var e = 'DEPRECATED METHOD: ' + c + '\n' + d + ' AT \n' | |||
|  |         return function() { | |||
|  |           var c = new Error('get-stack-trace'), | |||
|  |             d = | |||
|  |               c && c.stack | |||
|  |                 ? c.stack | |||
|  |                     .replace(/^[^\(]+?[\n$]/gm, '') | |||
|  |                     .replace(/^\s+at\s+/gm, '') | |||
|  |                     .replace(/^Object.<anonymous>\s*\(/gm, '{anonymous}()@') | |||
|  |                 : 'Unknown Stack Trace', | |||
|  |             f = a.console && (a.console.warn || a.console.log) | |||
|  |           return f && f.call(a.console, e, d), b.apply(this, arguments) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function i(a, b, c) { | |||
|  |         var d, | |||
|  |           e = b.prototype | |||
|  |         ;(d = a.prototype = Object.create(e)), | |||
|  |           (d.constructor = a), | |||
|  |           (d._super = e), | |||
|  |           c && la(d, c) | |||
|  |       } | |||
|  | 
 | |||
|  |       function j(a, b) { | |||
|  |         return function() { | |||
|  |           return a.apply(b, arguments) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function k(a, b) { | |||
|  |         return typeof a == oa ? a.apply(b ? b[0] || d : d, b) : a | |||
|  |       } | |||
|  | 
 | |||
|  |       function l(a, b) { | |||
|  |         return a === d ? b : a | |||
|  |       } | |||
|  | 
 | |||
|  |       function m(a, b, c) { | |||
|  |         g(q(b), function(b) { | |||
|  |           a.addEventListener(b, c, !1) | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       function n(a, b, c) { | |||
|  |         g(q(b), function(b) { | |||
|  |           a.removeEventListener(b, c, !1) | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       function o(a, b) { | |||
|  |         for (; a; ) { | |||
|  |           if (a == b) return !0 | |||
|  |           a = a.parentNode | |||
|  |         } | |||
|  |         return !1 | |||
|  |       } | |||
|  | 
 | |||
|  |       function p(a, b) { | |||
|  |         return a.indexOf(b) > -1 | |||
|  |       } | |||
|  | 
 | |||
|  |       function q(a) { | |||
|  |         return a.trim().split(/\s+/g) | |||
|  |       } | |||
|  | 
 | |||
|  |       function r(a, b, c) { | |||
|  |         if (a.indexOf && !c) return a.indexOf(b) | |||
|  |         for (var d = 0; d < a.length; ) { | |||
|  |           if ((c && a[d][c] == b) || (!c && a[d] === b)) return d | |||
|  |           d++ | |||
|  |         } | |||
|  |         return -1 | |||
|  |       } | |||
|  | 
 | |||
|  |       function s(a) { | |||
|  |         return Array.prototype.slice.call(a, 0) | |||
|  |       } | |||
|  | 
 | |||
|  |       function t(a, b, c) { | |||
|  |         for (var d = [], e = [], f = 0; f < a.length; ) { | |||
|  |           var g = b ? a[f][b] : a[f] | |||
|  |           r(e, g) < 0 && d.push(a[f]), (e[f] = g), f++ | |||
|  |         } | |||
|  |         return ( | |||
|  |           c && | |||
|  |             (d = b | |||
|  |               ? d.sort(function(a, c) { | |||
|  |                   return a[b] > c[b] | |||
|  |                 }) | |||
|  |               : d.sort()), | |||
|  |           d | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function u(a, b) { | |||
|  |         for ( | |||
|  |           var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; | |||
|  |           g < ma.length; | |||
|  | 
 | |||
|  |         ) { | |||
|  |           if (((c = ma[g]), (e = c ? c + f : b), e in a)) return e | |||
|  |           g++ | |||
|  |         } | |||
|  |         return d | |||
|  |       } | |||
|  | 
 | |||
|  |       function v() { | |||
|  |         return ua++ | |||
|  |       } | |||
|  | 
 | |||
|  |       function w(b) { | |||
|  |         var c = b.ownerDocument || b | |||
|  |         return c.defaultView || c.parentWindow || a | |||
|  |       } | |||
|  | 
 | |||
|  |       function x(a, b) { | |||
|  |         var c = this | |||
|  |         ;(this.manager = a), | |||
|  |           (this.callback = b), | |||
|  |           (this.element = a.element), | |||
|  |           (this.target = a.options.inputTarget), | |||
|  |           (this.domHandler = function(b) { | |||
|  |             k(a.options.enable, [a]) && c.handler(b) | |||
|  |           }), | |||
|  |           this.init() | |||
|  |       } | |||
|  | 
 | |||
|  |       function y(a) { | |||
|  |         var b, | |||
|  |           c = a.options.inputClass | |||
|  |         return new (b = c ? c : xa ? M : ya ? P : wa ? R : L)(a, z) | |||
|  |       } | |||
|  | 
 | |||
|  |       function z(a, b, c) { | |||
|  |         var d = c.pointers.length, | |||
|  |           e = c.changedPointers.length, | |||
|  |           f = b & Ea && d - e === 0, | |||
|  |           g = b & (Ga | Ha) && d - e === 0 | |||
|  |         ;(c.isFirst = !!f), | |||
|  |           (c.isFinal = !!g), | |||
|  |           f && (a.session = {}), | |||
|  |           (c.eventType = b), | |||
|  |           A(a, c), | |||
|  |           a.emit('hammer.input', c), | |||
|  |           a.recognize(c), | |||
|  |           (a.session.prevInput = c) | |||
|  |       } | |||
|  | 
 | |||
|  |       function A(a, b) { | |||
|  |         var c = a.session, | |||
|  |           d = b.pointers, | |||
|  |           e = d.length | |||
|  |         c.firstInput || (c.firstInput = D(b)), | |||
|  |           e > 1 && !c.firstMultiple | |||
|  |             ? (c.firstMultiple = D(b)) | |||
|  |             : 1 === e && (c.firstMultiple = !1) | |||
|  |         var f = c.firstInput, | |||
|  |           g = c.firstMultiple, | |||
|  |           h = g ? g.center : f.center, | |||
|  |           i = (b.center = E(d)) | |||
|  |         ;(b.timeStamp = ra()), | |||
|  |           (b.deltaTime = b.timeStamp - f.timeStamp), | |||
|  |           (b.angle = I(h, i)), | |||
|  |           (b.distance = H(h, i)), | |||
|  |           B(c, b), | |||
|  |           (b.offsetDirection = G(b.deltaX, b.deltaY)) | |||
|  |         var j = F(b.deltaTime, b.deltaX, b.deltaY) | |||
|  |         ;(b.overallVelocityX = j.x), | |||
|  |           (b.overallVelocityY = j.y), | |||
|  |           (b.overallVelocity = qa(j.x) > qa(j.y) ? j.x : j.y), | |||
|  |           (b.scale = g ? K(g.pointers, d) : 1), | |||
|  |           (b.rotation = g ? J(g.pointers, d) : 0), | |||
|  |           (b.maxPointers = c.prevInput | |||
|  |             ? b.pointers.length > c.prevInput.maxPointers | |||
|  |               ? b.pointers.length | |||
|  |               : c.prevInput.maxPointers | |||
|  |             : b.pointers.length), | |||
|  |           C(c, b) | |||
|  |         var k = a.element | |||
|  |         o(b.srcEvent.target, k) && (k = b.srcEvent.target), (b.target = k) | |||
|  |       } | |||
|  | 
 | |||
|  |       function B(a, b) { | |||
|  |         var c = b.center, | |||
|  |           d = a.offsetDelta || {}, | |||
|  |           e = a.prevDelta || {}, | |||
|  |           f = a.prevInput || {} | |||
|  |         ;(b.eventType !== Ea && f.eventType !== Ga) || | |||
|  |           ((e = a.prevDelta = { | |||
|  |             x: f.deltaX || 0, | |||
|  |             y: f.deltaY || 0 | |||
|  |           }), | |||
|  |           (d = a.offsetDelta = { x: c.x, y: c.y })), | |||
|  |           (b.deltaX = e.x + (c.x - d.x)), | |||
|  |           (b.deltaY = e.y + (c.y - d.y)) | |||
|  |       } | |||
|  | 
 | |||
|  |       function C(a, b) { | |||
|  |         var c, | |||
|  |           e, | |||
|  |           f, | |||
|  |           g, | |||
|  |           h = a.lastInterval || b, | |||
|  |           i = b.timeStamp - h.timeStamp | |||
|  |         if (b.eventType != Ha && (i > Da || h.velocity === d)) { | |||
|  |           var j = b.deltaX - h.deltaX, | |||
|  |             k = b.deltaY - h.deltaY, | |||
|  |             l = F(i, j, k) | |||
|  |           ;(e = l.x), | |||
|  |             (f = l.y), | |||
|  |             (c = qa(l.x) > qa(l.y) ? l.x : l.y), | |||
|  |             (g = G(j, k)), | |||
|  |             (a.lastInterval = b) | |||
|  |         } else | |||
|  |           (c = h.velocity), | |||
|  |             (e = h.velocityX), | |||
|  |             (f = h.velocityY), | |||
|  |             (g = h.direction) | |||
|  |         ;(b.velocity = c), | |||
|  |           (b.velocityX = e), | |||
|  |           (b.velocityY = f), | |||
|  |           (b.direction = g) | |||
|  |       } | |||
|  | 
 | |||
|  |       function D(a) { | |||
|  |         for (var b = [], c = 0; c < a.pointers.length; ) | |||
|  |           (b[c] = { | |||
|  |             clientX: pa(a.pointers[c].clientX), | |||
|  |             clientY: pa(a.pointers[c].clientY) | |||
|  |           }), | |||
|  |             c++ | |||
|  |         return { | |||
|  |           timeStamp: ra(), | |||
|  |           pointers: b, | |||
|  |           center: E(b), | |||
|  |           deltaX: a.deltaX, | |||
|  |           deltaY: a.deltaY | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function E(a) { | |||
|  |         var b = a.length | |||
|  |         if (1 === b) return { x: pa(a[0].clientX), y: pa(a[0].clientY) } | |||
|  |         for (var c = 0, d = 0, e = 0; b > e; ) | |||
|  |           (c += a[e].clientX), (d += a[e].clientY), e++ | |||
|  |         return { x: pa(c / b), y: pa(d / b) } | |||
|  |       } | |||
|  | 
 | |||
|  |       function F(a, b, c) { | |||
|  |         return { x: b / a || 0, y: c / a || 0 } | |||
|  |       } | |||
|  | 
 | |||
|  |       function G(a, b) { | |||
|  |         return a === b | |||
|  |           ? Ia | |||
|  |           : qa(a) >= qa(b) | |||
|  |           ? 0 > a | |||
|  |             ? Ja | |||
|  |             : Ka | |||
|  |           : 0 > b | |||
|  |           ? La | |||
|  |           : Ma | |||
|  |       } | |||
|  | 
 | |||
|  |       function H(a, b, c) { | |||
|  |         c || (c = Qa) | |||
|  |         var d = b[c[0]] - a[c[0]], | |||
|  |           e = b[c[1]] - a[c[1]] | |||
|  |         return Math.sqrt(d * d + e * e) | |||
|  |       } | |||
|  | 
 | |||
|  |       function I(a, b, c) { | |||
|  |         c || (c = Qa) | |||
|  |         var d = b[c[0]] - a[c[0]], | |||
|  |           e = b[c[1]] - a[c[1]] | |||
|  |         return (180 * Math.atan2(e, d)) / Math.PI | |||
|  |       } | |||
|  | 
 | |||
|  |       function J(a, b) { | |||
|  |         return I(b[1], b[0], Ra) + I(a[1], a[0], Ra) | |||
|  |       } | |||
|  | 
 | |||
|  |       function K(a, b) { | |||
|  |         return H(b[0], b[1], Ra) / H(a[0], a[1], Ra) | |||
|  |       } | |||
|  | 
 | |||
|  |       function L() { | |||
|  |         ;(this.evEl = Ta), | |||
|  |           (this.evWin = Ua), | |||
|  |           (this.pressed = !1), | |||
|  |           x.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function M() { | |||
|  |         ;(this.evEl = Xa), | |||
|  |           (this.evWin = Ya), | |||
|  |           x.apply(this, arguments), | |||
|  |           (this.store = this.manager.session.pointerEvents = []) | |||
|  |       } | |||
|  | 
 | |||
|  |       function N() { | |||
|  |         ;(this.evTarget = $a), | |||
|  |           (this.evWin = _a), | |||
|  |           (this.started = !1), | |||
|  |           x.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function O(a, b) { | |||
|  |         var c = s(a.touches), | |||
|  |           d = s(a.changedTouches) | |||
|  |         return b & (Ga | Ha) && (c = t(c.concat(d), 'identifier', !0)), [c, d] | |||
|  |       } | |||
|  | 
 | |||
|  |       function P() { | |||
|  |         ;(this.evTarget = bb), (this.targetIds = {}), x.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function Q(a, b) { | |||
|  |         var c = s(a.touches), | |||
|  |           d = this.targetIds | |||
|  |         if (b & (Ea | Fa) && 1 === c.length) | |||
|  |           return (d[c[0].identifier] = !0), [c, c] | |||
|  |         var e, | |||
|  |           f, | |||
|  |           g = s(a.changedTouches), | |||
|  |           h = [], | |||
|  |           i = this.target | |||
|  |         if ( | |||
|  |           ((f = c.filter(function(a) { | |||
|  |             return o(a.target, i) | |||
|  |           })), | |||
|  |           b === Ea) | |||
|  |         ) | |||
|  |           for (e = 0; e < f.length; ) (d[f[e].identifier] = !0), e++ | |||
|  |         for (e = 0; e < g.length; ) | |||
|  |           d[g[e].identifier] && h.push(g[e]), | |||
|  |             b & (Ga | Ha) && delete d[g[e].identifier], | |||
|  |             e++ | |||
|  |         return h.length ? [t(f.concat(h), 'identifier', !0), h] : void 0 | |||
|  |       } | |||
|  | 
 | |||
|  |       function R() { | |||
|  |         x.apply(this, arguments) | |||
|  |         var a = j(this.handler, this) | |||
|  |         ;(this.touch = new P(this.manager, a)), | |||
|  |           (this.mouse = new L(this.manager, a)), | |||
|  |           (this.primaryTouch = null), | |||
|  |           (this.lastTouches = []) | |||
|  |       } | |||
|  | 
 | |||
|  |       function S(a, b) { | |||
|  |         a & Ea | |||
|  |           ? ((this.primaryTouch = b.changedPointers[0].identifier), | |||
|  |             T.call(this, b)) | |||
|  |           : a & (Ga | Ha) && T.call(this, b) | |||
|  |       } | |||
|  | 
 | |||
|  |       function T(a) { | |||
|  |         var b = a.changedPointers[0] | |||
|  |         if (b.identifier === this.primaryTouch) { | |||
|  |           var c = { x: b.clientX, y: b.clientY } | |||
|  |           this.lastTouches.push(c) | |||
|  |           var d = this.lastTouches, | |||
|  |             e = function() { | |||
|  |               var a = d.indexOf(c) | |||
|  |               a > -1 && d.splice(a, 1) | |||
|  |             } | |||
|  |           setTimeout(e, cb) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function U(a) { | |||
|  |         for ( | |||
|  |           var b = a.srcEvent.clientX, c = a.srcEvent.clientY, d = 0; | |||
|  |           d < this.lastTouches.length; | |||
|  |           d++ | |||
|  |         ) { | |||
|  |           var e = this.lastTouches[d], | |||
|  |             f = Math.abs(b - e.x), | |||
|  |             g = Math.abs(c - e.y) | |||
|  |           if (db >= f && db >= g) return !0 | |||
|  |         } | |||
|  |         return !1 | |||
|  |       } | |||
|  | 
 | |||
|  |       function V(a, b) { | |||
|  |         ;(this.manager = a), this.set(b) | |||
|  |       } | |||
|  | 
 | |||
|  |       function W(a) { | |||
|  |         if (p(a, jb)) return jb | |||
|  |         var b = p(a, kb), | |||
|  |           c = p(a, lb) | |||
|  |         return b && c ? jb : b || c ? (b ? kb : lb) : p(a, ib) ? ib : hb | |||
|  |       } | |||
|  | 
 | |||
|  |       function X() { | |||
|  |         if (!fb) return !1 | |||
|  |         var b = {}, | |||
|  |           c = a.CSS && a.CSS.supports | |||
|  |         return ( | |||
|  |           [ | |||
|  |             'auto', | |||
|  |             'manipulation', | |||
|  |             'pan-y', | |||
|  |             'pan-x', | |||
|  |             'pan-x pan-y', | |||
|  |             'none' | |||
|  |           ].forEach(function(d) { | |||
|  |             b[d] = c ? a.CSS.supports('touch-action', d) : !0 | |||
|  |           }), | |||
|  |           b | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function Y(a) { | |||
|  |         ;(this.options = la({}, this.defaults, a || {})), | |||
|  |           (this.id = v()), | |||
|  |           (this.manager = null), | |||
|  |           (this.options.enable = l(this.options.enable, !0)), | |||
|  |           (this.state = nb), | |||
|  |           (this.simultaneous = {}), | |||
|  |           (this.requireFail = []) | |||
|  |       } | |||
|  | 
 | |||
|  |       function Z(a) { | |||
|  |         return a & sb | |||
|  |           ? 'cancel' | |||
|  |           : a & qb | |||
|  |           ? 'end' | |||
|  |           : a & pb | |||
|  |           ? 'move' | |||
|  |           : a & ob | |||
|  |           ? 'start' | |||
|  |           : '' | |||
|  |       } | |||
|  | 
 | |||
|  |       function $(a) { | |||
|  |         return a == Ma | |||
|  |           ? 'down' | |||
|  |           : a == La | |||
|  |           ? 'up' | |||
|  |           : a == Ja | |||
|  |           ? 'left' | |||
|  |           : a == Ka | |||
|  |           ? 'right' | |||
|  |           : '' | |||
|  |       } | |||
|  | 
 | |||
|  |       function _(a, b) { | |||
|  |         var c = b.manager | |||
|  |         return c ? c.get(a) : a | |||
|  |       } | |||
|  | 
 | |||
|  |       function aa() { | |||
|  |         Y.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ba() { | |||
|  |         aa.apply(this, arguments), (this.pX = null), (this.pY = null) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ca() { | |||
|  |         aa.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function da() { | |||
|  |         Y.apply(this, arguments), (this._timer = null), (this._input = null) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ea() { | |||
|  |         aa.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function fa() { | |||
|  |         aa.apply(this, arguments) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ga() { | |||
|  |         Y.apply(this, arguments), | |||
|  |           (this.pTime = !1), | |||
|  |           (this.pCenter = !1), | |||
|  |           (this._timer = null), | |||
|  |           (this._input = null), | |||
|  |           (this.count = 0) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ha(a, b) { | |||
|  |         return ( | |||
|  |           (b = b || {}), | |||
|  |           (b.recognizers = l(b.recognizers, ha.defaults.preset)), | |||
|  |           new ia(a, b) | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ia(a, b) { | |||
|  |         ;(this.options = la({}, ha.defaults, b || {})), | |||
|  |           (this.options.inputTarget = this.options.inputTarget || a), | |||
|  |           (this.handlers = {}), | |||
|  |           (this.session = {}), | |||
|  |           (this.recognizers = []), | |||
|  |           (this.oldCssProps = {}), | |||
|  |           (this.element = a), | |||
|  |           (this.input = y(this)), | |||
|  |           (this.touchAction = new V(this, this.options.touchAction)), | |||
|  |           ja(this, !0), | |||
|  |           g( | |||
|  |             this.options.recognizers, | |||
|  |             function(a) { | |||
|  |               var b = this.add(new a[0](a[1])) | |||
|  |               a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3]) | |||
|  |             }, | |||
|  |             this | |||
|  |           ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function ja(a, b) { | |||
|  |         var c = a.element | |||
|  |         if (c.style) { | |||
|  |           var d | |||
|  |           g(a.options.cssProps, function(e, f) { | |||
|  |             ;(d = u(c.style, f)), | |||
|  |               b | |||
|  |                 ? ((a.oldCssProps[d] = c.style[d]), (c.style[d] = e)) | |||
|  |                 : (c.style[d] = a.oldCssProps[d] || '') | |||
|  |           }), | |||
|  |             b || (a.oldCssProps = {}) | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function ka(a, c) { | |||
|  |         var d = b.createEvent('Event') | |||
|  |         d.initEvent(a, !0, !0), (d.gesture = c), c.target.dispatchEvent(d) | |||
|  |       } | |||
|  | 
 | |||
|  |       var la, | |||
|  |         ma = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'], | |||
|  |         na = b.createElement('div'), | |||
|  |         oa = 'function', | |||
|  |         pa = Math.round, | |||
|  |         qa = Math.abs, | |||
|  |         ra = Date.now | |||
|  |       la = | |||
|  |         'function' != typeof Object.assign | |||
|  |           ? function(a) { | |||
|  |               if (a === d || null === a) | |||
|  |                 throw new TypeError( | |||
|  |                   'Cannot convert undefined or null to object' | |||
|  |                 ) | |||
|  |               for (var b = Object(a), c = 1; c < arguments.length; c++) { | |||
|  |                 var e = arguments[c] | |||
|  |                 if (e !== d && null !== e) | |||
|  |                   for (var f in e) e.hasOwnProperty(f) && (b[f] = e[f]) | |||
|  |               } | |||
|  |               return b | |||
|  |             } | |||
|  |           : Object.assign | |||
|  |       var sa = h( | |||
|  |           function(a, b, c) { | |||
|  |             for (var e = Object.keys(b), f = 0; f < e.length; ) | |||
|  |               (!c || (c && a[e[f]] === d)) && (a[e[f]] = b[e[f]]), f++ | |||
|  |             return a | |||
|  |           }, | |||
|  |           'extend', | |||
|  |           'Use `assign`.' | |||
|  |         ), | |||
|  |         ta = h( | |||
|  |           function(a, b) { | |||
|  |             return sa(a, b, !0) | |||
|  |           }, | |||
|  |           'merge', | |||
|  |           'Use `assign`.' | |||
|  |         ), | |||
|  |         ua = 1, | |||
|  |         va = /mobile|tablet|ip(ad|hone|od)|android/i, | |||
|  |         wa = 'ontouchstart' in a, | |||
|  |         xa = u(a, 'PointerEvent') !== d, | |||
|  |         ya = wa && va.test(navigator.userAgent), | |||
|  |         za = 'touch', | |||
|  |         Aa = 'pen', | |||
|  |         Ba = 'mouse', | |||
|  |         Ca = 'kinect', | |||
|  |         Da = 25, | |||
|  |         Ea = 1, | |||
|  |         Fa = 2, | |||
|  |         Ga = 4, | |||
|  |         Ha = 8, | |||
|  |         Ia = 1, | |||
|  |         Ja = 2, | |||
|  |         Ka = 4, | |||
|  |         La = 8, | |||
|  |         Ma = 16, | |||
|  |         Na = Ja | Ka, | |||
|  |         Oa = La | Ma, | |||
|  |         Pa = Na | Oa, | |||
|  |         Qa = ['x', 'y'], | |||
|  |         Ra = ['clientX', 'clientY'] | |||
|  |       x.prototype = { | |||
|  |         handler: function() {}, | |||
|  |         init: function() { | |||
|  |           this.evEl && m(this.element, this.evEl, this.domHandler), | |||
|  |             this.evTarget && m(this.target, this.evTarget, this.domHandler), | |||
|  |             this.evWin && m(w(this.element), this.evWin, this.domHandler) | |||
|  |         }, | |||
|  |         destroy: function() { | |||
|  |           this.evEl && n(this.element, this.evEl, this.domHandler), | |||
|  |             this.evTarget && n(this.target, this.evTarget, this.domHandler), | |||
|  |             this.evWin && n(w(this.element), this.evWin, this.domHandler) | |||
|  |         } | |||
|  |       } | |||
|  |       var Sa = { mousedown: Ea, mousemove: Fa, mouseup: Ga }, | |||
|  |         Ta = 'mousedown', | |||
|  |         Ua = 'mousemove mouseup' | |||
|  |       i(L, x, { | |||
|  |         handler: function(a) { | |||
|  |           var b = Sa[a.type] | |||
|  |           b & Ea && 0 === a.button && (this.pressed = !0), | |||
|  |             b & Fa && 1 !== a.which && (b = Ga), | |||
|  |             this.pressed && | |||
|  |               (b & Ga && (this.pressed = !1), | |||
|  |               this.callback(this.manager, b, { | |||
|  |                 pointers: [a], | |||
|  |                 changedPointers: [a], | |||
|  |                 pointerType: Ba, | |||
|  |                 srcEvent: a | |||
|  |               })) | |||
|  |         } | |||
|  |       }) | |||
|  |       var Va = { | |||
|  |           pointerdown: Ea, | |||
|  |           pointermove: Fa, | |||
|  |           pointerup: Ga, | |||
|  |           pointercancel: Ha, | |||
|  |           pointerout: Ha | |||
|  |         }, | |||
|  |         Wa = { 2: za, 3: Aa, 4: Ba, 5: Ca }, | |||
|  |         Xa = 'pointerdown', | |||
|  |         Ya = 'pointermove pointerup pointercancel' | |||
|  |       a.MSPointerEvent && | |||
|  |         !a.PointerEvent && | |||
|  |         ((Xa = 'MSPointerDown'), | |||
|  |         (Ya = 'MSPointerMove MSPointerUp MSPointerCancel')), | |||
|  |         i(M, x, { | |||
|  |           handler: function(a) { | |||
|  |             var b = this.store, | |||
|  |               c = !1, | |||
|  |               d = a.type.toLowerCase().replace('ms', ''), | |||
|  |               e = Va[d], | |||
|  |               f = Wa[a.pointerType] || a.pointerType, | |||
|  |               g = f == za, | |||
|  |               h = r(b, a.pointerId, 'pointerId') | |||
|  |             e & Ea && (0 === a.button || g) | |||
|  |               ? 0 > h && (b.push(a), (h = b.length - 1)) | |||
|  |               : e & (Ga | Ha) && (c = !0), | |||
|  |               0 > h || | |||
|  |                 ((b[h] = a), | |||
|  |                 this.callback(this.manager, e, { | |||
|  |                   pointers: b, | |||
|  |                   changedPointers: [a], | |||
|  |                   pointerType: f, | |||
|  |                   srcEvent: a | |||
|  |                 }), | |||
|  |                 c && b.splice(h, 1)) | |||
|  |           } | |||
|  |         }) | |||
|  |       var Za = { touchstart: Ea, touchmove: Fa, touchend: Ga, touchcancel: Ha }, | |||
|  |         $a = 'touchstart', | |||
|  |         _a = 'touchstart touchmove touchend touchcancel' | |||
|  |       i(N, x, { | |||
|  |         handler: function(a) { | |||
|  |           var b = Za[a.type] | |||
|  |           if ((b === Ea && (this.started = !0), this.started)) { | |||
|  |             var c = O.call(this, a, b) | |||
|  |             b & (Ga | Ha) && | |||
|  |               c[0].length - c[1].length === 0 && | |||
|  |               (this.started = !1), | |||
|  |               this.callback(this.manager, b, { | |||
|  |                 pointers: c[0], | |||
|  |                 changedPointers: c[1], | |||
|  |                 pointerType: za, | |||
|  |                 srcEvent: a | |||
|  |               }) | |||
|  |           } | |||
|  |         } | |||
|  |       }) | |||
|  |       var ab = { touchstart: Ea, touchmove: Fa, touchend: Ga, touchcancel: Ha }, | |||
|  |         bb = 'touchstart touchmove touchend touchcancel' | |||
|  |       i(P, x, { | |||
|  |         handler: function(a) { | |||
|  |           var b = ab[a.type], | |||
|  |             c = Q.call(this, a, b) | |||
|  |           c && | |||
|  |             this.callback(this.manager, b, { | |||
|  |               pointers: c[0], | |||
|  |               changedPointers: c[1], | |||
|  |               pointerType: za, | |||
|  |               srcEvent: a | |||
|  |             }) | |||
|  |         } | |||
|  |       }) | |||
|  |       var cb = 2500, | |||
|  |         db = 25 | |||
|  |       i(R, x, { | |||
|  |         handler: function(a, b, c) { | |||
|  |           var d = c.pointerType == za, | |||
|  |             e = c.pointerType == Ba | |||
|  |           if ( | |||
|  |             !( | |||
|  |               e && | |||
|  |               c.sourceCapabilities && | |||
|  |               c.sourceCapabilities.firesTouchEvents | |||
|  |             ) | |||
|  |           ) { | |||
|  |             if (d) S.call(this, b, c) | |||
|  |             else if (e && U.call(this, c)) return | |||
|  |             this.callback(a, b, c) | |||
|  |           } | |||
|  |         }, | |||
|  |         destroy: function() { | |||
|  |           this.touch.destroy(), this.mouse.destroy() | |||
|  |         } | |||
|  |       }) | |||
|  |       var eb = u(na.style, 'touchAction'), | |||
|  |         fb = eb !== d, | |||
|  |         gb = 'compute', | |||
|  |         hb = 'auto', | |||
|  |         ib = 'manipulation', | |||
|  |         jb = 'none', | |||
|  |         kb = 'pan-x', | |||
|  |         lb = 'pan-y', | |||
|  |         mb = X() | |||
|  |       V.prototype = { | |||
|  |         set: function(a) { | |||
|  |           a == gb && (a = this.compute()), | |||
|  |             fb && | |||
|  |               this.manager.element.style && | |||
|  |               mb[a] && | |||
|  |               (this.manager.element.style[eb] = a), | |||
|  |             (this.actions = a.toLowerCase().trim()) | |||
|  |         }, | |||
|  |         update: function() { | |||
|  |           this.set(this.manager.options.touchAction) | |||
|  |         }, | |||
|  |         compute: function() { | |||
|  |           var a = [] | |||
|  |           return ( | |||
|  |             g(this.manager.recognizers, function(b) { | |||
|  |               k(b.options.enable, [b]) && (a = a.concat(b.getTouchAction())) | |||
|  |             }), | |||
|  |             W(a.join(' ')) | |||
|  |           ) | |||
|  |         }, | |||
|  |         preventDefaults: function(a) { | |||
|  |           var b = a.srcEvent, | |||
|  |             c = a.offsetDirection | |||
|  |           if (this.manager.session.prevented) return void b.preventDefault() | |||
|  |           var d = this.actions, | |||
|  |             e = p(d, jb) && !mb[jb], | |||
|  |             f = p(d, lb) && !mb[lb], | |||
|  |             g = p(d, kb) && !mb[kb] | |||
|  |           if (e) { | |||
|  |             var h = 1 === a.pointers.length, | |||
|  |               i = a.distance < 2, | |||
|  |               j = a.deltaTime < 250 | |||
|  |             if (h && i && j) return | |||
|  |           } | |||
|  |           return g && f | |||
|  |             ? void 0 | |||
|  |             : e || (f && c & Na) || (g && c & Oa) | |||
|  |             ? this.preventSrc(b) | |||
|  |             : void 0 | |||
|  |         }, | |||
|  |         preventSrc: function(a) { | |||
|  |           ;(this.manager.session.prevented = !0), a.preventDefault() | |||
|  |         } | |||
|  |       } | |||
|  |       var nb = 1, | |||
|  |         ob = 2, | |||
|  |         pb = 4, | |||
|  |         qb = 8, | |||
|  |         rb = qb, | |||
|  |         sb = 16, | |||
|  |         tb = 32 | |||
|  |       ;(Y.prototype = { | |||
|  |         defaults: {}, | |||
|  |         set: function(a) { | |||
|  |           return ( | |||
|  |             la(this.options, a), | |||
|  |             this.manager && this.manager.touchAction.update(), | |||
|  |             this | |||
|  |           ) | |||
|  |         }, | |||
|  |         recognizeWith: function(a) { | |||
|  |           if (f(a, 'recognizeWith', this)) return this | |||
|  |           var b = this.simultaneous | |||
|  |           return ( | |||
|  |             (a = _(a, this)), | |||
|  |             b[a.id] || ((b[a.id] = a), a.recognizeWith(this)), | |||
|  |             this | |||
|  |           ) | |||
|  |         }, | |||
|  |         dropRecognizeWith: function(a) { | |||
|  |           return f(a, 'dropRecognizeWith', this) | |||
|  |             ? this | |||
|  |             : ((a = _(a, this)), delete this.simultaneous[a.id], this) | |||
|  |         }, | |||
|  |         requireFailure: function(a) { | |||
|  |           if (f(a, 'requireFailure', this)) return this | |||
|  |           var b = this.requireFail | |||
|  |           return ( | |||
|  |             (a = _(a, this)), | |||
|  |             -1 === r(b, a) && (b.push(a), a.requireFailure(this)), | |||
|  |             this | |||
|  |           ) | |||
|  |         }, | |||
|  |         dropRequireFailure: function(a) { | |||
|  |           if (f(a, 'dropRequireFailure', this)) return this | |||
|  |           a = _(a, this) | |||
|  |           var b = r(this.requireFail, a) | |||
|  |           return b > -1 && this.requireFail.splice(b, 1), this | |||
|  |         }, | |||
|  |         hasRequireFailures: function() { | |||
|  |           return this.requireFail.length > 0 | |||
|  |         }, | |||
|  |         canRecognizeWith: function(a) { | |||
|  |           return !!this.simultaneous[a.id] | |||
|  |         }, | |||
|  |         emit: function(a) { | |||
|  |           function b(b) { | |||
|  |             c.manager.emit(b, a) | |||
|  |           } | |||
|  | 
 | |||
|  |           var c = this, | |||
|  |             d = this.state | |||
|  |           qb > d && b(c.options.event + Z(d)), | |||
|  |             b(c.options.event), | |||
|  |             a.additionalEvent && b(a.additionalEvent), | |||
|  |             d >= qb && b(c.options.event + Z(d)) | |||
|  |         }, | |||
|  |         tryEmit: function(a) { | |||
|  |           return this.canEmit() ? this.emit(a) : void (this.state = tb) | |||
|  |         }, | |||
|  |         canEmit: function() { | |||
|  |           for (var a = 0; a < this.requireFail.length; ) { | |||
|  |             if (!(this.requireFail[a].state & (tb | nb))) return !1 | |||
|  |             a++ | |||
|  |           } | |||
|  |           return !0 | |||
|  |         }, | |||
|  |         recognize: function(a) { | |||
|  |           var b = la({}, a) | |||
|  |           return k(this.options.enable, [this, b]) | |||
|  |             ? (this.state & (rb | sb | tb) && (this.state = nb), | |||
|  |               (this.state = this.process(b)), | |||
|  |               void (this.state & (ob | pb | qb | sb) && this.tryEmit(b))) | |||
|  |             : (this.reset(), void (this.state = tb)) | |||
|  |         }, | |||
|  |         process: function(a) {}, | |||
|  |         getTouchAction: function() {}, | |||
|  |         reset: function() {} | |||
|  |       }), | |||
|  |         i(aa, Y, { | |||
|  |           defaults: { pointers: 1 }, | |||
|  |           attrTest: function(a) { | |||
|  |             var b = this.options.pointers | |||
|  |             return 0 === b || a.pointers.length === b | |||
|  |           }, | |||
|  |           process: function(a) { | |||
|  |             var b = this.state, | |||
|  |               c = a.eventType, | |||
|  |               d = b & (ob | pb), | |||
|  |               e = this.attrTest(a) | |||
|  |             return d && (c & Ha || !e) | |||
|  |               ? b | sb | |||
|  |               : d || e | |||
|  |               ? c & Ga | |||
|  |                 ? b | qb | |||
|  |                 : b & ob | |||
|  |                 ? b | pb | |||
|  |                 : ob | |||
|  |               : tb | |||
|  |           } | |||
|  |         }), | |||
|  |         i(ba, aa, { | |||
|  |           defaults: { event: 'pan', threshold: 10, pointers: 1, direction: Pa }, | |||
|  |           getTouchAction: function() { | |||
|  |             var a = this.options.direction, | |||
|  |               b = [] | |||
|  |             return a & Na && b.push(lb), a & Oa && b.push(kb), b | |||
|  |           }, | |||
|  |           directionTest: function(a) { | |||
|  |             var b = this.options, | |||
|  |               c = !0, | |||
|  |               d = a.distance, | |||
|  |               e = a.direction, | |||
|  |               f = a.deltaX, | |||
|  |               g = a.deltaY | |||
|  |             return ( | |||
|  |               e & b.direction || | |||
|  |                 (b.direction & Na | |||
|  |                   ? ((e = 0 === f ? Ia : 0 > f ? Ja : Ka), | |||
|  |                     (c = f != this.pX), | |||
|  |                     (d = Math.abs(a.deltaX))) | |||
|  |                   : ((e = 0 === g ? Ia : 0 > g ? La : Ma), | |||
|  |                     (c = g != this.pY), | |||
|  |                     (d = Math.abs(a.deltaY)))), | |||
|  |               (a.direction = e), | |||
|  |               c && d > b.threshold && e & b.direction | |||
|  |             ) | |||
|  |           }, | |||
|  |           attrTest: function(a) { | |||
|  |             return ( | |||
|  |               aa.prototype.attrTest.call(this, a) && | |||
|  |               (this.state & ob || (!(this.state & ob) && this.directionTest(a))) | |||
|  |             ) | |||
|  |           }, | |||
|  |           emit: function(a) { | |||
|  |             ;(this.pX = a.deltaX), (this.pY = a.deltaY) | |||
|  |             var b = $(a.direction) | |||
|  |             b && (a.additionalEvent = this.options.event + b), | |||
|  |               this._super.emit.call(this, a) | |||
|  |           } | |||
|  |         }), | |||
|  |         i(ca, aa, { | |||
|  |           defaults: { event: 'pinch', threshold: 0, pointers: 2 }, | |||
|  |           getTouchAction: function() { | |||
|  |             return [jb] | |||
|  |           }, | |||
|  |           attrTest: function(a) { | |||
|  |             return ( | |||
|  |               this._super.attrTest.call(this, a) && | |||
|  |               (Math.abs(a.scale - 1) > this.options.threshold || | |||
|  |                 this.state & ob) | |||
|  |             ) | |||
|  |           }, | |||
|  |           emit: function(a) { | |||
|  |             if (1 !== a.scale) { | |||
|  |               var b = a.scale < 1 ? 'in' : 'out' | |||
|  |               a.additionalEvent = this.options.event + b | |||
|  |             } | |||
|  |             this._super.emit.call(this, a) | |||
|  |           } | |||
|  |         }), | |||
|  |         i(da, Y, { | |||
|  |           defaults: { event: 'press', pointers: 1, time: 251, threshold: 9 }, | |||
|  |           getTouchAction: function() { | |||
|  |             return [hb] | |||
|  |           }, | |||
|  |           process: function(a) { | |||
|  |             var b = this.options, | |||
|  |               c = a.pointers.length === b.pointers, | |||
|  |               d = a.distance < b.threshold, | |||
|  |               f = a.deltaTime > b.time | |||
|  |             if ( | |||
|  |               ((this._input = a), !d || !c || (a.eventType & (Ga | Ha) && !f)) | |||
|  |             ) | |||
|  |               this.reset() | |||
|  |             else if (a.eventType & Ea) | |||
|  |               this.reset(), | |||
|  |                 (this._timer = e( | |||
|  |                   function() { | |||
|  |                     ;(this.state = rb), this.tryEmit() | |||
|  |                   }, | |||
|  |                   b.time, | |||
|  |                   this | |||
|  |                 )) | |||
|  |             else if (a.eventType & Ga) return rb | |||
|  |             return tb | |||
|  |           }, | |||
|  |           reset: function() { | |||
|  |             clearTimeout(this._timer) | |||
|  |           }, | |||
|  |           emit: function(a) { | |||
|  |             this.state === rb && | |||
|  |               (a && a.eventType & Ga | |||
|  |                 ? this.manager.emit(this.options.event + 'up', a) | |||
|  |                 : ((this._input.timeStamp = ra()), | |||
|  |                   this.manager.emit(this.options.event, this._input))) | |||
|  |           } | |||
|  |         }), | |||
|  |         i(ea, aa, { | |||
|  |           defaults: { event: 'rotate', threshold: 0, pointers: 2 }, | |||
|  |           getTouchAction: function() { | |||
|  |             return [jb] | |||
|  |           }, | |||
|  |           attrTest: function(a) { | |||
|  |             return ( | |||
|  |               this._super.attrTest.call(this, a) && | |||
|  |               (Math.abs(a.rotation) > this.options.threshold || this.state & ob) | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         i(fa, aa, { | |||
|  |           defaults: { | |||
|  |             event: 'swipe', | |||
|  |             threshold: 10, | |||
|  |             velocity: 0.3, | |||
|  |             direction: Na | Oa, | |||
|  |             pointers: 1 | |||
|  |           }, | |||
|  |           getTouchAction: function() { | |||
|  |             return ba.prototype.getTouchAction.call(this) | |||
|  |           }, | |||
|  |           attrTest: function(a) { | |||
|  |             var b, | |||
|  |               c = this.options.direction | |||
|  |             return ( | |||
|  |               c & (Na | Oa) | |||
|  |                 ? (b = a.overallVelocity) | |||
|  |                 : c & Na | |||
|  |                 ? (b = a.overallVelocityX) | |||
|  |                 : c & Oa && (b = a.overallVelocityY), | |||
|  |               this._super.attrTest.call(this, a) && | |||
|  |                 c & a.offsetDirection && | |||
|  |                 a.distance > this.options.threshold && | |||
|  |                 a.maxPointers == this.options.pointers && | |||
|  |                 qa(b) > this.options.velocity && | |||
|  |                 a.eventType & Ga | |||
|  |             ) | |||
|  |           }, | |||
|  |           emit: function(a) { | |||
|  |             var b = $(a.offsetDirection) | |||
|  |             b && this.manager.emit(this.options.event + b, a), | |||
|  |               this.manager.emit(this.options.event, a) | |||
|  |           } | |||
|  |         }), | |||
|  |         i(ga, Y, { | |||
|  |           defaults: { | |||
|  |             event: 'tap', | |||
|  |             pointers: 1, | |||
|  |             taps: 1, | |||
|  |             interval: 300, | |||
|  |             time: 250, | |||
|  |             threshold: 9, | |||
|  |             posThreshold: 10 | |||
|  |           }, | |||
|  |           getTouchAction: function() { | |||
|  |             return [ib] | |||
|  |           }, | |||
|  |           process: function(a) { | |||
|  |             var b = this.options, | |||
|  |               c = a.pointers.length === b.pointers, | |||
|  |               d = a.distance < b.threshold, | |||
|  |               f = a.deltaTime < b.time | |||
|  |             if ((this.reset(), a.eventType & Ea && 0 === this.count)) | |||
|  |               return this.failTimeout() | |||
|  |             if (d && f && c) { | |||
|  |               if (a.eventType != Ga) return this.failTimeout() | |||
|  |               var g = this.pTime ? a.timeStamp - this.pTime < b.interval : !0, | |||
|  |                 h = !this.pCenter || H(this.pCenter, a.center) < b.posThreshold | |||
|  |               ;(this.pTime = a.timeStamp), | |||
|  |                 (this.pCenter = a.center), | |||
|  |                 h && g ? (this.count += 1) : (this.count = 1), | |||
|  |                 (this._input = a) | |||
|  |               var i = this.count % b.taps | |||
|  |               if (0 === i) | |||
|  |                 return this.hasRequireFailures() | |||
|  |                   ? ((this._timer = e( | |||
|  |                       function() { | |||
|  |                         ;(this.state = rb), this.tryEmit() | |||
|  |                       }, | |||
|  |                       b.interval, | |||
|  |                       this | |||
|  |                     )), | |||
|  |                     ob) | |||
|  |                   : rb | |||
|  |             } | |||
|  |             return tb | |||
|  |           }, | |||
|  |           failTimeout: function() { | |||
|  |             return ( | |||
|  |               (this._timer = e( | |||
|  |                 function() { | |||
|  |                   this.state = tb | |||
|  |                 }, | |||
|  |                 this.options.interval, | |||
|  |                 this | |||
|  |               )), | |||
|  |               tb | |||
|  |             ) | |||
|  |           }, | |||
|  |           reset: function() { | |||
|  |             clearTimeout(this._timer) | |||
|  |           }, | |||
|  |           emit: function() { | |||
|  |             this.state == rb && | |||
|  |               ((this._input.tapCount = this.count), | |||
|  |               this.manager.emit(this.options.event, this._input)) | |||
|  |           } | |||
|  |         }), | |||
|  |         (ha.VERSION = '2.0.7'), | |||
|  |         (ha.defaults = { | |||
|  |           domEvents: !1, | |||
|  |           touchAction: gb, | |||
|  |           enable: !0, | |||
|  |           inputTarget: null, | |||
|  |           inputClass: null, | |||
|  |           preset: [ | |||
|  |             [ea, { enable: !1 }], | |||
|  |             [ca, { enable: !1 }, ['rotate']], | |||
|  |             [fa, { direction: Na }], | |||
|  |             [ba, { direction: Na }, ['swipe']], | |||
|  |             [ga], | |||
|  |             [ | |||
|  |               ga, | |||
|  |               { | |||
|  |                 event: 'doubletap', | |||
|  |                 taps: 2 | |||
|  |               }, | |||
|  |               ['tap'] | |||
|  |             ], | |||
|  |             [da] | |||
|  |           ], | |||
|  |           cssProps: { | |||
|  |             userSelect: 'none', | |||
|  |             touchSelect: 'none', | |||
|  |             touchCallout: 'none', | |||
|  |             contentZooming: 'none', | |||
|  |             userDrag: 'none', | |||
|  |             tapHighlightColor: 'rgba(0,0,0,0)' | |||
|  |           } | |||
|  |         }) | |||
|  |       var ub = 1, | |||
|  |         vb = 2 | |||
|  |       ;(ia.prototype = { | |||
|  |         set: function(a) { | |||
|  |           return ( | |||
|  |             la(this.options, a), | |||
|  |             a.touchAction && this.touchAction.update(), | |||
|  |             a.inputTarget && | |||
|  |               (this.input.destroy(), | |||
|  |               (this.input.target = a.inputTarget), | |||
|  |               this.input.init()), | |||
|  |             this | |||
|  |           ) | |||
|  |         }, | |||
|  |         stop: function(a) { | |||
|  |           this.session.stopped = a ? vb : ub | |||
|  |         }, | |||
|  |         recognize: function(a) { | |||
|  |           var b = this.session | |||
|  |           if (!b.stopped) { | |||
|  |             this.touchAction.preventDefaults(a) | |||
|  |             var c, | |||
|  |               d = this.recognizers, | |||
|  |               e = b.curRecognizer | |||
|  |             ;(!e || (e && e.state & rb)) && (e = b.curRecognizer = null) | |||
|  |             for (var f = 0; f < d.length; ) | |||
|  |               (c = d[f]), | |||
|  |                 b.stopped === vb || (e && c != e && !c.canRecognizeWith(e)) | |||
|  |                   ? c.reset() | |||
|  |                   : c.recognize(a), | |||
|  |                 !e && c.state & (ob | pb | qb) && (e = b.curRecognizer = c), | |||
|  |                 f++ | |||
|  |           } | |||
|  |         }, | |||
|  |         get: function(a) { | |||
|  |           if (a instanceof Y) return a | |||
|  |           for (var b = this.recognizers, c = 0; c < b.length; c++) | |||
|  |             if (b[c].options.event == a) return b[c] | |||
|  |           return null | |||
|  |         }, | |||
|  |         add: function(a) { | |||
|  |           if (f(a, 'add', this)) return this | |||
|  |           var b = this.get(a.options.event) | |||
|  |           return ( | |||
|  |             b && this.remove(b), | |||
|  |             this.recognizers.push(a), | |||
|  |             (a.manager = this), | |||
|  |             this.touchAction.update(), | |||
|  |             a | |||
|  |           ) | |||
|  |         }, | |||
|  |         remove: function(a) { | |||
|  |           if (f(a, 'remove', this)) return this | |||
|  |           if ((a = this.get(a))) { | |||
|  |             var b = this.recognizers, | |||
|  |               c = r(b, a) | |||
|  |             ;-1 !== c && (b.splice(c, 1), this.touchAction.update()) | |||
|  |           } | |||
|  |           return this | |||
|  |         }, | |||
|  |         on: function(a, b) { | |||
|  |           if (a !== d && b !== d) { | |||
|  |             var c = this.handlers | |||
|  |             return ( | |||
|  |               g(q(a), function(a) { | |||
|  |                 ;(c[a] = c[a] || []), c[a].push(b) | |||
|  |               }), | |||
|  |               this | |||
|  |             ) | |||
|  |           } | |||
|  |         }, | |||
|  |         off: function(a, b) { | |||
|  |           if (a !== d) { | |||
|  |             var c = this.handlers | |||
|  |             return ( | |||
|  |               g(q(a), function(a) { | |||
|  |                 b ? c[a] && c[a].splice(r(c[a], b), 1) : delete c[a] | |||
|  |               }), | |||
|  |               this | |||
|  |             ) | |||
|  |           } | |||
|  |         }, | |||
|  |         emit: function(a, b) { | |||
|  |           this.options.domEvents && ka(a, b) | |||
|  |           var c = this.handlers[a] && this.handlers[a].slice() | |||
|  |           if (c && c.length) { | |||
|  |             ;(b.type = a), | |||
|  |               (b.preventDefault = function() { | |||
|  |                 b.srcEvent.preventDefault() | |||
|  |               }) | |||
|  |             for (var d = 0; d < c.length; ) c[d](b), d++ | |||
|  |           } | |||
|  |         }, | |||
|  |         destroy: function() { | |||
|  |           this.element && ja(this, !1), | |||
|  |             (this.handlers = {}), | |||
|  |             (this.session = {}), | |||
|  |             this.input.destroy(), | |||
|  |             (this.element = null) | |||
|  |         } | |||
|  |       }), | |||
|  |         la(ha, { | |||
|  |           INPUT_START: Ea, | |||
|  |           INPUT_MOVE: Fa, | |||
|  |           INPUT_END: Ga, | |||
|  |           INPUT_CANCEL: Ha, | |||
|  |           STATE_POSSIBLE: nb, | |||
|  |           STATE_BEGAN: ob, | |||
|  |           STATE_CHANGED: pb, | |||
|  |           STATE_ENDED: qb, | |||
|  |           STATE_RECOGNIZED: rb, | |||
|  |           STATE_CANCELLED: sb, | |||
|  |           STATE_FAILED: tb, | |||
|  |           DIRECTION_NONE: Ia, | |||
|  |           DIRECTION_LEFT: Ja, | |||
|  |           DIRECTION_RIGHT: Ka, | |||
|  |           DIRECTION_UP: La, | |||
|  |           DIRECTION_DOWN: Ma, | |||
|  |           DIRECTION_HORIZONTAL: Na, | |||
|  |           DIRECTION_VERTICAL: Oa, | |||
|  |           DIRECTION_ALL: Pa, | |||
|  |           Manager: ia, | |||
|  |           Input: x, | |||
|  |           TouchAction: V, | |||
|  |           TouchInput: P, | |||
|  |           MouseInput: L, | |||
|  |           PointerEventInput: M, | |||
|  |           TouchMouseInput: R, | |||
|  |           SingleTouchInput: N, | |||
|  |           Recognizer: Y, | |||
|  |           AttrRecognizer: aa, | |||
|  |           Tap: ga, | |||
|  |           Pan: ba, | |||
|  |           Swipe: fa, | |||
|  |           Pinch: ca, | |||
|  |           Rotate: ea, | |||
|  |           Press: da, | |||
|  |           on: m, | |||
|  |           off: n, | |||
|  |           each: g, | |||
|  |           merge: ta, | |||
|  |           extend: sa, | |||
|  |           assign: la, | |||
|  |           inherit: i, | |||
|  |           bindFn: j, | |||
|  |           prefixed: u | |||
|  |         }) | |||
|  |       var wb = | |||
|  |         'undefined' != typeof a ? a : 'undefined' != typeof self ? self : {} | |||
|  |       ;(wb.Hammer = ha), | |||
|  |         'function' == typeof define && define.amd | |||
|  |           ? define('Hammer', [], function() { | |||
|  |               return ha | |||
|  |             }) | |||
|  |           : 'undefined' != typeof module && module.exports | |||
|  |           ? (module.exports = ha) | |||
|  |           : (a[c] = ha) | |||
|  |     })(window, document, 'Hammer') | |||
|  |     define('Core/KnockoutHammerBinding', ['KnockoutES5', 'Hammer'], function( | |||
|  |       Knockout, | |||
|  |       Hammer | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var KnockoutHammerBinding = { | |||
|  |         register: function(Knockout) { | |||
|  |           Knockout.bindingHandlers.swipeLeft = { | |||
|  |             init: function( | |||
|  |               element, | |||
|  |               valueAccessor, | |||
|  |               allBindings, | |||
|  |               viewModel, | |||
|  |               bindingContext | |||
|  |             ) { | |||
|  |               var f = Knockout.unwrap(valueAccessor()) | |||
|  |               new Hammer(element).on('swipeleft', function(e) { | |||
|  |                 var viewModel = bindingContext.$data | |||
|  |                 f.apply(viewModel, arguments) | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |           Knockout.bindingHandlers.swipeRight = { | |||
|  |             init: function( | |||
|  |               element, | |||
|  |               valueAccessor, | |||
|  |               allBindings, | |||
|  |               viewModel, | |||
|  |               bindingContext | |||
|  |             ) { | |||
|  |               var f = Knockout.unwrap(valueAccessor()) | |||
|  |               new Hammer(element).on('swiperight', function(e) { | |||
|  |                 var viewModel = bindingContext.$data | |||
|  |                 f.apply(viewModel, arguments) | |||
|  |               }) | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |       } | |||
|  |       return KnockoutHammerBinding | |||
|  |     }) | |||
|  |     define('Core/registerKnockoutBindings', [ | |||
|  |       'Cesium/Widgets/SvgPathBindingHandler', | |||
|  |       'KnockoutES5', | |||
|  |       'Core/KnockoutMarkdownBinding', | |||
|  |       'Core/KnockoutHammerBinding' | |||
|  |     ], function( | |||
|  |       SvgPathBindingHandler, | |||
|  |       Knockout, | |||
|  |       KnockoutMarkdownBinding, | |||
|  |       KnockoutHammerBinding | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var registerKnockoutBindings = function() { | |||
|  |         SvgPathBindingHandler.register(Knockout) | |||
|  |         KnockoutMarkdownBinding.register(Knockout) | |||
|  |         KnockoutHammerBinding.register(Knockout) | |||
|  |         Knockout.bindingHandlers.embeddedComponent = { | |||
|  |           init: function( | |||
|  |             element, | |||
|  |             valueAccessor, | |||
|  |             allBindings, | |||
|  |             viewModel, | |||
|  |             bindingContext | |||
|  |           ) { | |||
|  |             var component = Knockout.unwrap(valueAccessor()) | |||
|  |             component.show(element) | |||
|  |             return { controlsDescendantBindings: true } | |||
|  |           }, | |||
|  |           update: function( | |||
|  |             element, | |||
|  |             valueAccessor, | |||
|  |             allBindings, | |||
|  |             viewModel, | |||
|  |             bindingContext | |||
|  |           ) {} | |||
|  |         } | |||
|  |       } | |||
|  |       return registerKnockoutBindings | |||
|  |     }) | |||
|  |     define('Core/createFragmentFromTemplate', [], function() { | |||
|  |       'use strict' | |||
|  |       var createFragmentFromTemplate = function(htmlString) { | |||
|  |         var holder = document.createElement('div') | |||
|  |         holder.innerHTML = htmlString | |||
|  |         var fragment = document.createDocumentFragment() | |||
|  |         while (holder.firstChild) { | |||
|  |           fragment.appendChild(holder.firstChild) | |||
|  |         } | |||
|  |         return fragment | |||
|  |       } | |||
|  |       return createFragmentFromTemplate | |||
|  |     }) | |||
|  |     define('Core/loadView', [ | |||
|  |       'Cesium/Widgets/getElement', | |||
|  |       'KnockoutES5', | |||
|  |       'Core/createFragmentFromTemplate' | |||
|  |     ], function(getElement, Knockout, createFragmentFromTemplate) { | |||
|  |       'use strict' | |||
|  |       var loadView = function(htmlString, container, viewModel) { | |||
|  |         container = getElement(container) | |||
|  |         var fragment = createFragmentFromTemplate(htmlString) | |||
|  |         var nodes = [] | |||
|  |         var i | |||
|  |         for (i = 0; i < fragment.childNodes.length; ++i) { | |||
|  |           nodes.push(fragment.childNodes[i]) | |||
|  |         } | |||
|  |         container.appendChild(fragment) | |||
|  |         for (i = 0; i < nodes.length; ++i) { | |||
|  |           var node = nodes[i] | |||
|  |           if (node.nodeType === 1 || node.nodeType === 8) { | |||
|  |             Knockout.applyBindings(viewModel, node) | |||
|  |           } | |||
|  |         } | |||
|  |         return nodes | |||
|  |       } | |||
|  |       return loadView | |||
|  |     }) | |||
|  |     !(function(t, e, i) { | |||
|  |       var n = t.L, | |||
|  |         o = {} | |||
|  |       ;(o.version = '0.7.7'), | |||
|  |         'object' == typeof module && 'object' == typeof module.exports | |||
|  |           ? (module.exports = o) | |||
|  |           : 'function' == typeof define && define.amd && define('leaflet', o), | |||
|  |         (o.noConflict = function() { | |||
|  |           return (t.L = n), this | |||
|  |         }), | |||
|  |         (t.L = o), | |||
|  |         (o.Util = { | |||
|  |           extend: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n, | |||
|  |               o, | |||
|  |               s = Array.prototype.slice.call(arguments, 1) | |||
|  |             for (i = 0, n = s.length; n > i; i++) { | |||
|  |               o = s[i] || {} | |||
|  |               for (e in o) o.hasOwnProperty(e) && (t[e] = o[e]) | |||
|  |             } | |||
|  |             return t | |||
|  |           }, | |||
|  |           bind: function(t, e) { | |||
|  |             var i = | |||
|  |               arguments.length > 2 | |||
|  |                 ? Array.prototype.slice.call(arguments, 2) | |||
|  |                 : null | |||
|  |             return function() { | |||
|  |               return t.apply(e, i || arguments) | |||
|  |             } | |||
|  |           }, | |||
|  |           stamp: (function() { | |||
|  |             var t = 0, | |||
|  |               e = '_leaflet_id' | |||
|  |             return function(i) { | |||
|  |               return (i[e] = i[e] || ++t), i[e] | |||
|  |             } | |||
|  |           })(), | |||
|  |           invokeEach: function(t, e, i) { | |||
|  |             var n, o | |||
|  |             if ('object' == typeof t) { | |||
|  |               o = Array.prototype.slice.call(arguments, 3) | |||
|  |               for (n in t) e.apply(i, [n, t[n]].concat(o)) | |||
|  |               return !0 | |||
|  |             } | |||
|  |             return !1 | |||
|  |           }, | |||
|  |           limitExecByInterval: function(t, e, i) { | |||
|  |             var n, o | |||
|  |             return function s() { | |||
|  |               var a = arguments | |||
|  |               return n | |||
|  |                 ? void (o = !0) | |||
|  |                 : ((n = !0), | |||
|  |                   setTimeout(function() { | |||
|  |                     ;(n = !1), o && (s.apply(i, a), (o = !1)) | |||
|  |                   }, e), | |||
|  |                   void t.apply(i, a)) | |||
|  |             } | |||
|  |           }, | |||
|  |           falseFn: function() { | |||
|  |             return !1 | |||
|  |           }, | |||
|  |           formatNum: function(t, e) { | |||
|  |             var i = Math.pow(10, e || 5) | |||
|  |             return Math.round(t * i) / i | |||
|  |           }, | |||
|  |           trim: function(t) { | |||
|  |             return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, '') | |||
|  |           }, | |||
|  |           splitWords: function(t) { | |||
|  |             return o.Util.trim(t).split(/\s+/) | |||
|  |           }, | |||
|  |           setOptions: function(t, e) { | |||
|  |             return (t.options = o.extend({}, t.options, e)), t.options | |||
|  |           }, | |||
|  |           getParamString: function(t, e, i) { | |||
|  |             var n = [] | |||
|  |             for (var o in t) | |||
|  |               n.push( | |||
|  |                 encodeURIComponent(i ? o.toUpperCase() : o) + | |||
|  |                   '=' + | |||
|  |                   encodeURIComponent(t[o]) | |||
|  |               ) | |||
|  |             return (e && -1 !== e.indexOf('?') ? '&' : '?') + n.join('&') | |||
|  |           }, | |||
|  |           template: function(t, e) { | |||
|  |             return t.replace(/\{ *([\w_]+) *\}/g, function(t, n) { | |||
|  |               var o = e[n] | |||
|  |               if (o === i) | |||
|  |                 throw new Error('No value provided for variable ' + t) | |||
|  |               return 'function' == typeof o && (o = o(e)), o | |||
|  |             }) | |||
|  |           }, | |||
|  |           isArray: | |||
|  |             Array.isArray || | |||
|  |             function(t) { | |||
|  |               return '[object Array]' === Object.prototype.toString.call(t) | |||
|  |             }, | |||
|  |           emptyImageUrl: | |||
|  |             'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=' | |||
|  |         }), | |||
|  |         (function() { | |||
|  |           function e(e) { | |||
|  |             var i, | |||
|  |               n, | |||
|  |               o = ['webkit', 'moz', 'o', 'ms'] | |||
|  |             for (i = 0; i < o.length && !n; i++) n = t[o[i] + e] | |||
|  |             return n | |||
|  |           } | |||
|  | 
 | |||
|  |           function i(e) { | |||
|  |             var i = +new Date(), | |||
|  |               o = Math.max(0, 16 - (i - n)) | |||
|  |             return (n = i + o), t.setTimeout(e, o) | |||
|  |           } | |||
|  | 
 | |||
|  |           var n = 0, | |||
|  |             s = t.requestAnimationFrame || e('RequestAnimationFrame') || i, | |||
|  |             a = | |||
|  |               t.cancelAnimationFrame || | |||
|  |               e('CancelAnimationFrame') || | |||
|  |               e('CancelRequestAnimationFrame') || | |||
|  |               function(e) { | |||
|  |                 t.clearTimeout(e) | |||
|  |               } | |||
|  |           ;(o.Util.requestAnimFrame = function(e, n, a, r) { | |||
|  |             return (e = o.bind(e, n)), a && s === i ? void e() : s.call(t, e, r) | |||
|  |           }), | |||
|  |             (o.Util.cancelAnimFrame = function(e) { | |||
|  |               e && a.call(t, e) | |||
|  |             }) | |||
|  |         })(), | |||
|  |         (o.extend = o.Util.extend), | |||
|  |         (o.bind = o.Util.bind), | |||
|  |         (o.stamp = o.Util.stamp), | |||
|  |         (o.setOptions = o.Util.setOptions), | |||
|  |         (o.Class = function() {}), | |||
|  |         (o.Class.extend = function(t) { | |||
|  |           var e = function() { | |||
|  |               this.initialize && this.initialize.apply(this, arguments), | |||
|  |                 this._initHooks && this.callInitHooks() | |||
|  |             }, | |||
|  |             i = function() {} | |||
|  |           i.prototype = this.prototype | |||
|  |           var n = new i() | |||
|  |           ;(n.constructor = e), (e.prototype = n) | |||
|  |           for (var s in this) | |||
|  |             this.hasOwnProperty(s) && 'prototype' !== s && (e[s] = this[s]) | |||
|  |           t.statics && (o.extend(e, t.statics), delete t.statics), | |||
|  |             t.includes && | |||
|  |               (o.Util.extend.apply(null, [n].concat(t.includes)), | |||
|  |               delete t.includes), | |||
|  |             t.options && | |||
|  |               n.options && | |||
|  |               (t.options = o.extend({}, n.options, t.options)), | |||
|  |             o.extend(n, t), | |||
|  |             (n._initHooks = []) | |||
|  |           var a = this | |||
|  |           return ( | |||
|  |             (e.__super__ = a.prototype), | |||
|  |             (n.callInitHooks = function() { | |||
|  |               if (!this._initHooksCalled) { | |||
|  |                 a.prototype.callInitHooks && | |||
|  |                   a.prototype.callInitHooks.call(this), | |||
|  |                   (this._initHooksCalled = !0) | |||
|  |                 for (var t = 0, e = n._initHooks.length; e > t; t++) | |||
|  |                   n._initHooks[t].call(this) | |||
|  |               } | |||
|  |             }), | |||
|  |             e | |||
|  |           ) | |||
|  |         }), | |||
|  |         (o.Class.include = function(t) { | |||
|  |           o.extend(this.prototype, t) | |||
|  |         }), | |||
|  |         (o.Class.mergeOptions = function(t) { | |||
|  |           o.extend(this.prototype.options, t) | |||
|  |         }), | |||
|  |         (o.Class.addInitHook = function(t) { | |||
|  |           var e = Array.prototype.slice.call(arguments, 1), | |||
|  |             i = | |||
|  |               'function' == typeof t | |||
|  |                 ? t | |||
|  |                 : function() { | |||
|  |                     this[t].apply(this, e) | |||
|  |                   } | |||
|  |           ;(this.prototype._initHooks = this.prototype._initHooks || []), | |||
|  |             this.prototype._initHooks.push(i) | |||
|  |         }) | |||
|  |       var s = '_leaflet_events' | |||
|  |       ;(o.Mixin = {}), | |||
|  |         (o.Mixin.Events = { | |||
|  |           addEventListener: function(t, e, i) { | |||
|  |             if (o.Util.invokeEach(t, this.addEventListener, this, e, i)) | |||
|  |               return this | |||
|  |             var n, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h, | |||
|  |               l, | |||
|  |               u, | |||
|  |               c, | |||
|  |               d = (this[s] = this[s] || {}), | |||
|  |               p = i && i !== this && o.stamp(i) | |||
|  |             for (t = o.Util.splitWords(t), n = 0, a = t.length; a > n; n++) | |||
|  |               (r = { | |||
|  |                 action: e, | |||
|  |                 context: i || this | |||
|  |               }), | |||
|  |                 (h = t[n]), | |||
|  |                 p | |||
|  |                   ? ((l = h + '_idx'), | |||
|  |                     (u = l + '_len'), | |||
|  |                     (c = d[l] = d[l] || {}), | |||
|  |                     c[p] || ((c[p] = []), (d[u] = (d[u] || 0) + 1)), | |||
|  |                     c[p].push(r)) | |||
|  |                   : ((d[h] = d[h] || []), d[h].push(r)) | |||
|  |             return this | |||
|  |           }, | |||
|  |           hasEventListeners: function(t) { | |||
|  |             var e = this[s] | |||
|  |             return ( | |||
|  |               !!e && | |||
|  |               ((t in e && e[t].length > 0) || | |||
|  |                 (t + '_idx' in e && e[t + '_idx_len'] > 0)) | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeEventListener: function(t, e, i) { | |||
|  |             if (!this[s]) return this | |||
|  |             if (!t) return this.clearAllEventListeners() | |||
|  |             if (o.Util.invokeEach(t, this.removeEventListener, this, e, i)) | |||
|  |               return this | |||
|  |             var n, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h, | |||
|  |               l, | |||
|  |               u, | |||
|  |               c, | |||
|  |               d, | |||
|  |               p, | |||
|  |               _ = this[s], | |||
|  |               m = i && i !== this && o.stamp(i) | |||
|  |             for (t = o.Util.splitWords(t), n = 0, a = t.length; a > n; n++) | |||
|  |               if ( | |||
|  |                 ((r = t[n]), (u = r + '_idx'), (c = u + '_len'), (d = _[u]), e) | |||
|  |               ) { | |||
|  |                 if ((h = m && d ? d[m] : _[r])) { | |||
|  |                   for (l = h.length - 1; l >= 0; l--) | |||
|  |                     h[l].action !== e || | |||
|  |                       (i && h[l].context !== i) || | |||
|  |                       ((p = h.splice(l, 1)), (p[0].action = o.Util.falseFn)) | |||
|  |                   i && d && 0 === h.length && (delete d[m], _[c]--) | |||
|  |                 } | |||
|  |               } else delete _[r], delete _[u], delete _[c] | |||
|  |             return this | |||
|  |           }, | |||
|  |           clearAllEventListeners: function() { | |||
|  |             return delete this[s], this | |||
|  |           }, | |||
|  |           fireEvent: function(t, e) { | |||
|  |             if (!this.hasEventListeners(t)) return this | |||
|  |             var i, | |||
|  |               n, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h, | |||
|  |               l = o.Util.extend({}, e, { type: t, target: this }), | |||
|  |               u = this[s] | |||
|  |             if (u[t]) | |||
|  |               for (i = u[t].slice(), n = 0, a = i.length; a > n; n++) | |||
|  |                 i[n].action.call(i[n].context, l) | |||
|  |             r = u[t + '_idx'] | |||
|  |             for (h in r) | |||
|  |               if ((i = r[h].slice())) | |||
|  |                 for (n = 0, a = i.length; a > n; n++) | |||
|  |                   i[n].action.call(i[n].context, l) | |||
|  |             return this | |||
|  |           }, | |||
|  |           addOneTimeEventListener: function(t, e, i) { | |||
|  |             if (o.Util.invokeEach(t, this.addOneTimeEventListener, this, e, i)) | |||
|  |               return this | |||
|  |             var n = o.bind(function() { | |||
|  |               this.removeEventListener(t, e, i).removeEventListener(t, n, i) | |||
|  |             }, this) | |||
|  |             return this.addEventListener(t, e, i).addEventListener(t, n, i) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Mixin.Events.on = o.Mixin.Events.addEventListener), | |||
|  |         (o.Mixin.Events.off = o.Mixin.Events.removeEventListener), | |||
|  |         (o.Mixin.Events.once = o.Mixin.Events.addOneTimeEventListener), | |||
|  |         (o.Mixin.Events.fire = o.Mixin.Events.fireEvent), | |||
|  |         (function() { | |||
|  |           var n = 'ActiveXObject' in t, | |||
|  |             s = n && !e.addEventListener, | |||
|  |             a = navigator.userAgent.toLowerCase(), | |||
|  |             r = -1 !== a.indexOf('webkit'), | |||
|  |             h = -1 !== a.indexOf('chrome'), | |||
|  |             l = -1 !== a.indexOf('phantom'), | |||
|  |             u = -1 !== a.indexOf('android'), | |||
|  |             c = -1 !== a.search('android [23]'), | |||
|  |             d = -1 !== a.indexOf('gecko'), | |||
|  |             p = typeof orientation != i + '', | |||
|  |             _ = !t.PointerEvent && t.MSPointerEvent, | |||
|  |             m = (t.PointerEvent && t.navigator.pointerEnabled) || _, | |||
|  |             f = | |||
|  |               ('devicePixelRatio' in t && t.devicePixelRatio > 1) || | |||
|  |               ('matchMedia' in t && | |||
|  |                 t.matchMedia('(min-resolution:144dpi)') && | |||
|  |                 t.matchMedia('(min-resolution:144dpi)').matches), | |||
|  |             g = e.documentElement, | |||
|  |             v = n && 'transition' in g.style, | |||
|  |             y = | |||
|  |               'WebKitCSSMatrix' in t && 'm11' in new t.WebKitCSSMatrix() && !c, | |||
|  |             P = 'MozPerspective' in g.style, | |||
|  |             L = 'OTransition' in g.style, | |||
|  |             x = !t.L_DISABLE_3D && (v || y || P || L) && !l, | |||
|  |             w = | |||
|  |               !t.L_NO_TOUCH && | |||
|  |               !l && | |||
|  |               (m || | |||
|  |                 'ontouchstart' in t || | |||
|  |                 (t.DocumentTouch && e instanceof t.DocumentTouch)) | |||
|  |           o.Browser = { | |||
|  |             ie: n, | |||
|  |             ielt9: s, | |||
|  |             webkit: r, | |||
|  |             gecko: d && !r && !t.opera && !n, | |||
|  |             android: u, | |||
|  |             android23: c, | |||
|  |             chrome: h, | |||
|  |             ie3d: v, | |||
|  |             webkit3d: y, | |||
|  |             gecko3d: P, | |||
|  |             opera3d: L, | |||
|  |             any3d: x, | |||
|  |             mobile: p, | |||
|  |             mobileWebkit: p && r, | |||
|  |             mobileWebkit3d: p && y, | |||
|  |             mobileOpera: p && t.opera, | |||
|  |             touch: w, | |||
|  |             msPointer: _, | |||
|  |             pointer: m, | |||
|  |             retina: f | |||
|  |           } | |||
|  |         })(), | |||
|  |         (o.Point = function(t, e, i) { | |||
|  |           ;(this.x = i ? Math.round(t) : t), (this.y = i ? Math.round(e) : e) | |||
|  |         }), | |||
|  |         (o.Point.prototype = { | |||
|  |           clone: function() { | |||
|  |             return new o.Point(this.x, this.y) | |||
|  |           }, | |||
|  |           add: function(t) { | |||
|  |             return this.clone()._add(o.point(t)) | |||
|  |           }, | |||
|  |           _add: function(t) { | |||
|  |             return (this.x += t.x), (this.y += t.y), this | |||
|  |           }, | |||
|  |           subtract: function(t) { | |||
|  |             return this.clone()._subtract(o.point(t)) | |||
|  |           }, | |||
|  |           _subtract: function(t) { | |||
|  |             return (this.x -= t.x), (this.y -= t.y), this | |||
|  |           }, | |||
|  |           divideBy: function(t) { | |||
|  |             return this.clone()._divideBy(t) | |||
|  |           }, | |||
|  |           _divideBy: function(t) { | |||
|  |             return (this.x /= t), (this.y /= t), this | |||
|  |           }, | |||
|  |           multiplyBy: function(t) { | |||
|  |             return this.clone()._multiplyBy(t) | |||
|  |           }, | |||
|  |           _multiplyBy: function(t) { | |||
|  |             return (this.x *= t), (this.y *= t), this | |||
|  |           }, | |||
|  |           round: function() { | |||
|  |             return this.clone()._round() | |||
|  |           }, | |||
|  |           _round: function() { | |||
|  |             return ( | |||
|  |               (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           floor: function() { | |||
|  |             return this.clone()._floor() | |||
|  |           }, | |||
|  |           _floor: function() { | |||
|  |             return ( | |||
|  |               (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           distanceTo: function(t) { | |||
|  |             t = o.point(t) | |||
|  |             var e = t.x - this.x, | |||
|  |               i = t.y - this.y | |||
|  |             return Math.sqrt(e * e + i * i) | |||
|  |           }, | |||
|  |           equals: function(t) { | |||
|  |             return (t = o.point(t)), t.x === this.x && t.y === this.y | |||
|  |           }, | |||
|  |           contains: function(t) { | |||
|  |             return ( | |||
|  |               (t = o.point(t)), | |||
|  |               Math.abs(t.x) <= Math.abs(this.x) && | |||
|  |                 Math.abs(t.y) <= Math.abs(this.y) | |||
|  |             ) | |||
|  |           }, | |||
|  |           toString: function() { | |||
|  |             return ( | |||
|  |               'Point(' + | |||
|  |               o.Util.formatNum(this.x) + | |||
|  |               ', ' + | |||
|  |               o.Util.formatNum(this.y) + | |||
|  |               ')' | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.point = function(t, e, n) { | |||
|  |           return t instanceof o.Point | |||
|  |             ? t | |||
|  |             : o.Util.isArray(t) | |||
|  |             ? new o.Point(t[0], t[1]) | |||
|  |             : t === i || null === t | |||
|  |             ? t | |||
|  |             : new o.Point(t, e, n) | |||
|  |         }), | |||
|  |         (o.Bounds = function(t, e) { | |||
|  |           if (t) | |||
|  |             for (var i = e ? [t, e] : t, n = 0, o = i.length; o > n; n++) | |||
|  |               this.extend(i[n]) | |||
|  |         }), | |||
|  |         (o.Bounds.prototype = { | |||
|  |           extend: function(t) { | |||
|  |             return ( | |||
|  |               (t = o.point(t)), | |||
|  |               this.min || this.max | |||
|  |                 ? ((this.min.x = Math.min(t.x, this.min.x)), | |||
|  |                   (this.max.x = Math.max(t.x, this.max.x)), | |||
|  |                   (this.min.y = Math.min(t.y, this.min.y)), | |||
|  |                   (this.max.y = Math.max(t.y, this.max.y))) | |||
|  |                 : ((this.min = t.clone()), (this.max = t.clone())), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getCenter: function(t) { | |||
|  |             return new o.Point( | |||
|  |               (this.min.x + this.max.x) / 2, | |||
|  |               (this.min.y + this.max.y) / 2, | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           getBottomLeft: function() { | |||
|  |             return new o.Point(this.min.x, this.max.y) | |||
|  |           }, | |||
|  |           getTopRight: function() { | |||
|  |             return new o.Point(this.max.x, this.min.y) | |||
|  |           }, | |||
|  |           getSize: function() { | |||
|  |             return this.max.subtract(this.min) | |||
|  |           }, | |||
|  |           contains: function(t) { | |||
|  |             var e, i | |||
|  |             return ( | |||
|  |               (t = | |||
|  |                 'number' == typeof t[0] || t instanceof o.Point | |||
|  |                   ? o.point(t) | |||
|  |                   : o.bounds(t)), | |||
|  |               t instanceof o.Bounds ? ((e = t.min), (i = t.max)) : (e = i = t), | |||
|  |               e.x >= this.min.x && | |||
|  |                 i.x <= this.max.x && | |||
|  |                 e.y >= this.min.y && | |||
|  |                 i.y <= this.max.y | |||
|  |             ) | |||
|  |           }, | |||
|  |           intersects: function(t) { | |||
|  |             t = o.bounds(t) | |||
|  |             var e = this.min, | |||
|  |               i = this.max, | |||
|  |               n = t.min, | |||
|  |               s = t.max, | |||
|  |               a = s.x >= e.x && n.x <= i.x, | |||
|  |               r = s.y >= e.y && n.y <= i.y | |||
|  |             return a && r | |||
|  |           }, | |||
|  |           isValid: function() { | |||
|  |             return !(!this.min || !this.max) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.bounds = function(t, e) { | |||
|  |           return !t || t instanceof o.Bounds ? t : new o.Bounds(t, e) | |||
|  |         }), | |||
|  |         (o.Transformation = function(t, e, i, n) { | |||
|  |           ;(this._a = t), (this._b = e), (this._c = i), (this._d = n) | |||
|  |         }), | |||
|  |         (o.Transformation.prototype = { | |||
|  |           transform: function(t, e) { | |||
|  |             return this._transform(t.clone(), e) | |||
|  |           }, | |||
|  |           _transform: function(t, e) { | |||
|  |             return ( | |||
|  |               (e = e || 1), | |||
|  |               (t.x = e * (this._a * t.x + this._b)), | |||
|  |               (t.y = e * (this._c * t.y + this._d)), | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           untransform: function(t, e) { | |||
|  |             return ( | |||
|  |               (e = e || 1), | |||
|  |               new o.Point( | |||
|  |                 (t.x / e - this._b) / this._a, | |||
|  |                 (t.y / e - this._d) / this._c | |||
|  |               ) | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.DomUtil = { | |||
|  |           get: function(t) { | |||
|  |             return 'string' == typeof t ? e.getElementById(t) : t | |||
|  |           }, | |||
|  |           getStyle: function(t, i) { | |||
|  |             var n = t.style[i] | |||
|  |             if ( | |||
|  |               (!n && t.currentStyle && (n = t.currentStyle[i]), | |||
|  |               (!n || 'auto' === n) && e.defaultView) | |||
|  |             ) { | |||
|  |               var o = e.defaultView.getComputedStyle(t, null) | |||
|  |               n = o ? o[i] : null | |||
|  |             } | |||
|  |             return 'auto' === n ? null : n | |||
|  |           }, | |||
|  |           getViewportOffset: function(t) { | |||
|  |             var i, | |||
|  |               n = 0, | |||
|  |               s = 0, | |||
|  |               a = t, | |||
|  |               r = e.body, | |||
|  |               h = e.documentElement | |||
|  |             do { | |||
|  |               if ( | |||
|  |                 ((n += a.offsetTop || 0), | |||
|  |                 (s += a.offsetLeft || 0), | |||
|  |                 (n += | |||
|  |                   parseInt(o.DomUtil.getStyle(a, 'borderTopWidth'), 10) || 0), | |||
|  |                 (s += | |||
|  |                   parseInt(o.DomUtil.getStyle(a, 'borderLeftWidth'), 10) || 0), | |||
|  |                 (i = o.DomUtil.getStyle(a, 'position')), | |||
|  |                 a.offsetParent === r && 'absolute' === i) | |||
|  |               ) | |||
|  |                 break | |||
|  |               if ('fixed' === i) { | |||
|  |                 ;(n += r.scrollTop || h.scrollTop || 0), | |||
|  |                   (s += r.scrollLeft || h.scrollLeft || 0) | |||
|  |                 break | |||
|  |               } | |||
|  |               if ('relative' === i && !a.offsetLeft) { | |||
|  |                 var l = o.DomUtil.getStyle(a, 'width'), | |||
|  |                   u = o.DomUtil.getStyle(a, 'max-width'), | |||
|  |                   c = a.getBoundingClientRect() | |||
|  |                 ;('none' !== l || 'none' !== u) && (s += c.left + a.clientLeft), | |||
|  |                   (n += c.top + (r.scrollTop || h.scrollTop || 0)) | |||
|  |                 break | |||
|  |               } | |||
|  |               a = a.offsetParent | |||
|  |             } while (a) | |||
|  |             a = t | |||
|  |             do { | |||
|  |               if (a === r) break | |||
|  |               ;(n -= a.scrollTop || 0), | |||
|  |                 (s -= a.scrollLeft || 0), | |||
|  |                 (a = a.parentNode) | |||
|  |             } while (a) | |||
|  |             return new o.Point(s, n) | |||
|  |           }, | |||
|  |           documentIsLtr: function() { | |||
|  |             return ( | |||
|  |               o.DomUtil._docIsLtrCached || | |||
|  |                 ((o.DomUtil._docIsLtrCached = !0), | |||
|  |                 (o.DomUtil._docIsLtr = | |||
|  |                   'ltr' === o.DomUtil.getStyle(e.body, 'direction'))), | |||
|  |               o.DomUtil._docIsLtr | |||
|  |             ) | |||
|  |           }, | |||
|  |           create: function(t, i, n) { | |||
|  |             var o = e.createElement(t) | |||
|  |             return (o.className = i), n && n.appendChild(o), o | |||
|  |           }, | |||
|  |           hasClass: function(t, e) { | |||
|  |             if (t.classList !== i) return t.classList.contains(e) | |||
|  |             var n = o.DomUtil._getClass(t) | |||
|  |             return n.length > 0 && new RegExp('(^|\\s)' + e + '(\\s|$)').test(n) | |||
|  |           }, | |||
|  |           addClass: function(t, e) { | |||
|  |             if (t.classList !== i) | |||
|  |               for ( | |||
|  |                 var n = o.Util.splitWords(e), s = 0, a = n.length; | |||
|  |                 a > s; | |||
|  |                 s++ | |||
|  |               ) | |||
|  |                 t.classList.add(n[s]) | |||
|  |             else if (!o.DomUtil.hasClass(t, e)) { | |||
|  |               var r = o.DomUtil._getClass(t) | |||
|  |               o.DomUtil._setClass(t, (r ? r + ' ' : '') + e) | |||
|  |             } | |||
|  |           }, | |||
|  |           removeClass: function(t, e) { | |||
|  |             t.classList !== i | |||
|  |               ? t.classList.remove(e) | |||
|  |               : o.DomUtil._setClass( | |||
|  |                   t, | |||
|  |                   o.Util.trim( | |||
|  |                     (' ' + o.DomUtil._getClass(t) + ' ').replace( | |||
|  |                       ' ' + e + ' ', | |||
|  |                       ' ' | |||
|  |                     ) | |||
|  |                   ) | |||
|  |                 ) | |||
|  |           }, | |||
|  |           _setClass: function(t, e) { | |||
|  |             t.className.baseVal === i | |||
|  |               ? (t.className = e) | |||
|  |               : (t.className.baseVal = e) | |||
|  |           }, | |||
|  |           _getClass: function(t) { | |||
|  |             return t.className.baseVal === i ? t.className : t.className.baseVal | |||
|  |           }, | |||
|  |           setOpacity: function(t, e) { | |||
|  |             if ('opacity' in t.style) t.style.opacity = e | |||
|  |             else if ('filter' in t.style) { | |||
|  |               var i = !1, | |||
|  |                 n = 'DXImageTransform.Microsoft.Alpha' | |||
|  |               try { | |||
|  |                 i = t.filters.item(n) | |||
|  |               } catch (o) { | |||
|  |                 if (1 === e) return | |||
|  |               } | |||
|  |               ;(e = Math.round(100 * e)), | |||
|  |                 i | |||
|  |                   ? ((i.Enabled = 100 !== e), (i.Opacity = e)) | |||
|  |                   : (t.style.filter += ' progid:' + n + '(opacity=' + e + ')') | |||
|  |             } | |||
|  |           }, | |||
|  |           testProp: function(t) { | |||
|  |             for (var i = e.documentElement.style, n = 0; n < t.length; n++) | |||
|  |               if (t[n] in i) return t[n] | |||
|  |             return !1 | |||
|  |           }, | |||
|  |           getTranslateString: function(t) { | |||
|  |             var e = o.Browser.webkit3d, | |||
|  |               i = 'translate' + (e ? '3d' : '') + '(', | |||
|  |               n = (e ? ',0' : '') + ')' | |||
|  |             return i + t.x + 'px,' + t.y + 'px' + n | |||
|  |           }, | |||
|  |           getScaleString: function(t, e) { | |||
|  |             var i = o.DomUtil.getTranslateString(e.add(e.multiplyBy(-1 * t))), | |||
|  |               n = ' scale(' + t + ') ' | |||
|  |             return i + n | |||
|  |           }, | |||
|  |           setPosition: function(t, e, i) { | |||
|  |             ;(t._leaflet_pos = e), | |||
|  |               !i && o.Browser.any3d | |||
|  |                 ? (t.style[o.DomUtil.TRANSFORM] = o.DomUtil.getTranslateString( | |||
|  |                     e | |||
|  |                   )) | |||
|  |                 : ((t.style.left = e.x + 'px'), (t.style.top = e.y + 'px')) | |||
|  |           }, | |||
|  |           getPosition: function(t) { | |||
|  |             return t._leaflet_pos | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.DomUtil.TRANSFORM = o.DomUtil.testProp([ | |||
|  |           'transform', | |||
|  |           'WebkitTransform', | |||
|  |           'OTransform', | |||
|  |           'MozTransform', | |||
|  |           'msTransform' | |||
|  |         ])), | |||
|  |         (o.DomUtil.TRANSITION = o.DomUtil.testProp([ | |||
|  |           'webkitTransition', | |||
|  |           'transition', | |||
|  |           'OTransition', | |||
|  |           'MozTransition', | |||
|  |           'msTransition' | |||
|  |         ])), | |||
|  |         (o.DomUtil.TRANSITION_END = | |||
|  |           'webkitTransition' === o.DomUtil.TRANSITION || | |||
|  |           'OTransition' === o.DomUtil.TRANSITION | |||
|  |             ? o.DomUtil.TRANSITION + 'End' | |||
|  |             : 'transitionend'), | |||
|  |         (function() { | |||
|  |           if ('onselectstart' in e) | |||
|  |             o.extend(o.DomUtil, { | |||
|  |               disableTextSelection: function() { | |||
|  |                 o.DomEvent.on(t, 'selectstart', o.DomEvent.preventDefault) | |||
|  |               }, | |||
|  |               enableTextSelection: function() { | |||
|  |                 o.DomEvent.off(t, 'selectstart', o.DomEvent.preventDefault) | |||
|  |               } | |||
|  |             }) | |||
|  |           else { | |||
|  |             var i = o.DomUtil.testProp([ | |||
|  |               'userSelect', | |||
|  |               'WebkitUserSelect', | |||
|  |               'OUserSelect', | |||
|  |               'MozUserSelect', | |||
|  |               'msUserSelect' | |||
|  |             ]) | |||
|  |             o.extend(o.DomUtil, { | |||
|  |               disableTextSelection: function() { | |||
|  |                 if (i) { | |||
|  |                   var t = e.documentElement.style | |||
|  |                   ;(this._userSelect = t[i]), (t[i] = 'none') | |||
|  |                 } | |||
|  |               }, | |||
|  |               enableTextSelection: function() { | |||
|  |                 i && | |||
|  |                   ((e.documentElement.style[i] = this._userSelect), | |||
|  |                   delete this._userSelect) | |||
|  |               } | |||
|  |             }) | |||
|  |           } | |||
|  |           o.extend(o.DomUtil, { | |||
|  |             disableImageDrag: function() { | |||
|  |               o.DomEvent.on(t, 'dragstart', o.DomEvent.preventDefault) | |||
|  |             }, | |||
|  |             enableImageDrag: function() { | |||
|  |               o.DomEvent.off(t, 'dragstart', o.DomEvent.preventDefault) | |||
|  |             } | |||
|  |           }) | |||
|  |         })(), | |||
|  |         (o.LatLng = function(t, e, n) { | |||
|  |           if (((t = parseFloat(t)), (e = parseFloat(e)), isNaN(t) || isNaN(e))) | |||
|  |             throw new Error('Invalid LatLng object: (' + t + ', ' + e + ')') | |||
|  |           ;(this.lat = t), (this.lng = e), n !== i && (this.alt = parseFloat(n)) | |||
|  |         }), | |||
|  |         o.extend(o.LatLng, { | |||
|  |           DEG_TO_RAD: Math.PI / 180, | |||
|  |           RAD_TO_DEG: 180 / Math.PI, | |||
|  |           MAX_MARGIN: 1e-9 | |||
|  |         }), | |||
|  |         (o.LatLng.prototype = { | |||
|  |           equals: function(t) { | |||
|  |             if (!t) return !1 | |||
|  |             t = o.latLng(t) | |||
|  |             var e = Math.max( | |||
|  |               Math.abs(this.lat - t.lat), | |||
|  |               Math.abs(this.lng - t.lng) | |||
|  |             ) | |||
|  |             return e <= o.LatLng.MAX_MARGIN | |||
|  |           }, | |||
|  |           toString: function(t) { | |||
|  |             return ( | |||
|  |               'LatLng(' + | |||
|  |               o.Util.formatNum(this.lat, t) + | |||
|  |               ', ' + | |||
|  |               o.Util.formatNum(this.lng, t) + | |||
|  |               ')' | |||
|  |             ) | |||
|  |           }, | |||
|  |           distanceTo: function(t) { | |||
|  |             t = o.latLng(t) | |||
|  |             var e = 6378137, | |||
|  |               i = o.LatLng.DEG_TO_RAD, | |||
|  |               n = (t.lat - this.lat) * i, | |||
|  |               s = (t.lng - this.lng) * i, | |||
|  |               a = this.lat * i, | |||
|  |               r = t.lat * i, | |||
|  |               h = Math.sin(n / 2), | |||
|  |               l = Math.sin(s / 2), | |||
|  |               u = h * h + l * l * Math.cos(a) * Math.cos(r) | |||
|  |             return 2 * e * Math.atan2(Math.sqrt(u), Math.sqrt(1 - u)) | |||
|  |           }, | |||
|  |           wrap: function(t, e) { | |||
|  |             var i = this.lng | |||
|  |             return ( | |||
|  |               (t = t || -180), | |||
|  |               (e = e || 180), | |||
|  |               (i = ((i + e) % (e - t)) + (t > i || i === e ? e : t)), | |||
|  |               new o.LatLng(this.lat, i) | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.latLng = function(t, e) { | |||
|  |           return t instanceof o.LatLng | |||
|  |             ? t | |||
|  |             : o.Util.isArray(t) | |||
|  |             ? 'number' == typeof t[0] || 'string' == typeof t[0] | |||
|  |               ? new o.LatLng(t[0], t[1], t[2]) | |||
|  |               : null | |||
|  |             : t === i || null === t | |||
|  |             ? t | |||
|  |             : 'object' == typeof t && 'lat' in t | |||
|  |             ? new o.LatLng(t.lat, 'lng' in t ? t.lng : t.lon) | |||
|  |             : e === i | |||
|  |             ? null | |||
|  |             : new o.LatLng(t, e) | |||
|  |         }), | |||
|  |         (o.LatLngBounds = function(t, e) { | |||
|  |           if (t) | |||
|  |             for (var i = e ? [t, e] : t, n = 0, o = i.length; o > n; n++) | |||
|  |               this.extend(i[n]) | |||
|  |         }), | |||
|  |         (o.LatLngBounds.prototype = { | |||
|  |           extend: function(t) { | |||
|  |             if (!t) return this | |||
|  |             var e = o.latLng(t) | |||
|  |             return ( | |||
|  |               (t = null !== e ? e : o.latLngBounds(t)), | |||
|  |               t instanceof o.LatLng | |||
|  |                 ? this._southWest || this._northEast | |||
|  |                   ? ((this._southWest.lat = Math.min( | |||
|  |                       t.lat, | |||
|  |                       this._southWest.lat | |||
|  |                     )), | |||
|  |                     (this._southWest.lng = Math.min( | |||
|  |                       t.lng, | |||
|  |                       this._southWest.lng | |||
|  |                     )), | |||
|  |                     (this._northEast.lat = Math.max( | |||
|  |                       t.lat, | |||
|  |                       this._northEast.lat | |||
|  |                     )), | |||
|  |                     (this._northEast.lng = Math.max( | |||
|  |                       t.lng, | |||
|  |                       this._northEast.lng | |||
|  |                     ))) | |||
|  |                   : ((this._southWest = new o.LatLng(t.lat, t.lng)), | |||
|  |                     (this._northEast = new o.LatLng(t.lat, t.lng))) | |||
|  |                 : t instanceof o.LatLngBounds && | |||
|  |                   (this.extend(t._southWest), this.extend(t._northEast)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           pad: function(t) { | |||
|  |             var e = this._southWest, | |||
|  |               i = this._northEast, | |||
|  |               n = Math.abs(e.lat - i.lat) * t, | |||
|  |               s = Math.abs(e.lng - i.lng) * t | |||
|  |             return new o.LatLngBounds( | |||
|  |               new o.LatLng(e.lat - n, e.lng - s), | |||
|  |               new o.LatLng(i.lat + n, i.lng + s) | |||
|  |             ) | |||
|  |           }, | |||
|  |           getCenter: function() { | |||
|  |             return new o.LatLng( | |||
|  |               (this._southWest.lat + this._northEast.lat) / 2, | |||
|  |               (this._southWest.lng + this._northEast.lng) / 2 | |||
|  |             ) | |||
|  |           }, | |||
|  |           getSouthWest: function() { | |||
|  |             return this._southWest | |||
|  |           }, | |||
|  |           getNorthEast: function() { | |||
|  |             return this._northEast | |||
|  |           }, | |||
|  |           getNorthWest: function() { | |||
|  |             return new o.LatLng(this.getNorth(), this.getWest()) | |||
|  |           }, | |||
|  |           getSouthEast: function() { | |||
|  |             return new o.LatLng(this.getSouth(), this.getEast()) | |||
|  |           }, | |||
|  |           getWest: function() { | |||
|  |             return this._southWest.lng | |||
|  |           }, | |||
|  |           getSouth: function() { | |||
|  |             return this._southWest.lat | |||
|  |           }, | |||
|  |           getEast: function() { | |||
|  |             return this._northEast.lng | |||
|  |           }, | |||
|  |           getNorth: function() { | |||
|  |             return this._northEast.lat | |||
|  |           }, | |||
|  |           contains: function(t) { | |||
|  |             t = | |||
|  |               'number' == typeof t[0] || t instanceof o.LatLng | |||
|  |                 ? o.latLng(t) | |||
|  |                 : o.latLngBounds(t) | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n = this._southWest, | |||
|  |               s = this._northEast | |||
|  |             return ( | |||
|  |               t instanceof o.LatLngBounds | |||
|  |                 ? ((e = t.getSouthWest()), (i = t.getNorthEast())) | |||
|  |                 : (e = i = t), | |||
|  |               e.lat >= n.lat && | |||
|  |                 i.lat <= s.lat && | |||
|  |                 e.lng >= n.lng && | |||
|  |                 i.lng <= s.lng | |||
|  |             ) | |||
|  |           }, | |||
|  |           intersects: function(t) { | |||
|  |             t = o.latLngBounds(t) | |||
|  |             var e = this._southWest, | |||
|  |               i = this._northEast, | |||
|  |               n = t.getSouthWest(), | |||
|  |               s = t.getNorthEast(), | |||
|  |               a = s.lat >= e.lat && n.lat <= i.lat, | |||
|  |               r = s.lng >= e.lng && n.lng <= i.lng | |||
|  |             return a && r | |||
|  |           }, | |||
|  |           toBBoxString: function() { | |||
|  |             return [ | |||
|  |               this.getWest(), | |||
|  |               this.getSouth(), | |||
|  |               this.getEast(), | |||
|  |               this.getNorth() | |||
|  |             ].join(',') | |||
|  |           }, | |||
|  |           equals: function(t) { | |||
|  |             return t | |||
|  |               ? ((t = o.latLngBounds(t)), | |||
|  |                 this._southWest.equals(t.getSouthWest()) && | |||
|  |                   this._northEast.equals(t.getNorthEast())) | |||
|  |               : !1 | |||
|  |           }, | |||
|  |           isValid: function() { | |||
|  |             return !(!this._southWest || !this._northEast) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.latLngBounds = function(t, e) { | |||
|  |           return !t || t instanceof o.LatLngBounds | |||
|  |             ? t | |||
|  |             : new o.LatLngBounds(t, e) | |||
|  |         }), | |||
|  |         (o.Projection = {}), | |||
|  |         (o.Projection.SphericalMercator = { | |||
|  |           MAX_LATITUDE: 85.0511287798, | |||
|  |           project: function(t) { | |||
|  |             var e = o.LatLng.DEG_TO_RAD, | |||
|  |               i = this.MAX_LATITUDE, | |||
|  |               n = Math.max(Math.min(i, t.lat), -i), | |||
|  |               s = t.lng * e, | |||
|  |               a = n * e | |||
|  |             return ( | |||
|  |               (a = Math.log(Math.tan(Math.PI / 4 + a / 2))), new o.Point(s, a) | |||
|  |             ) | |||
|  |           }, | |||
|  |           unproject: function(t) { | |||
|  |             var e = o.LatLng.RAD_TO_DEG, | |||
|  |               i = t.x * e, | |||
|  |               n = (2 * Math.atan(Math.exp(t.y)) - Math.PI / 2) * e | |||
|  |             return new o.LatLng(n, i) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Projection.LonLat = { | |||
|  |           project: function(t) { | |||
|  |             return new o.Point(t.lng, t.lat) | |||
|  |           }, | |||
|  |           unproject: function(t) { | |||
|  |             return new o.LatLng(t.y, t.x) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.CRS = { | |||
|  |           latLngToPoint: function(t, e) { | |||
|  |             var i = this.projection.project(t), | |||
|  |               n = this.scale(e) | |||
|  |             return this.transformation._transform(i, n) | |||
|  |           }, | |||
|  |           pointToLatLng: function(t, e) { | |||
|  |             var i = this.scale(e), | |||
|  |               n = this.transformation.untransform(t, i) | |||
|  |             return this.projection.unproject(n) | |||
|  |           }, | |||
|  |           project: function(t) { | |||
|  |             return this.projection.project(t) | |||
|  |           }, | |||
|  |           scale: function(t) { | |||
|  |             return 256 * Math.pow(2, t) | |||
|  |           }, | |||
|  |           getSize: function(t) { | |||
|  |             var e = this.scale(t) | |||
|  |             return o.point(e, e) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.CRS.Simple = o.extend({}, o.CRS, { | |||
|  |           projection: o.Projection.LonLat, | |||
|  |           transformation: new o.Transformation(1, 0, -1, 0), | |||
|  |           scale: function(t) { | |||
|  |             return Math.pow(2, t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.CRS.EPSG3857 = o.extend({}, o.CRS, { | |||
|  |           code: 'EPSG:3857', | |||
|  |           projection: o.Projection.SphericalMercator, | |||
|  |           transformation: new o.Transformation( | |||
|  |             0.5 / Math.PI, | |||
|  |             0.5, | |||
|  |             -0.5 / Math.PI, | |||
|  |             0.5 | |||
|  |           ), | |||
|  |           project: function(t) { | |||
|  |             var e = this.projection.project(t), | |||
|  |               i = 6378137 | |||
|  |             return e.multiplyBy(i) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.CRS.EPSG900913 = o.extend({}, o.CRS.EPSG3857, { | |||
|  |           code: 'EPSG:900913' | |||
|  |         })), | |||
|  |         (o.CRS.EPSG4326 = o.extend({}, o.CRS, { | |||
|  |           code: 'EPSG:4326', | |||
|  |           projection: o.Projection.LonLat, | |||
|  |           transformation: new o.Transformation(1 / 360, 0.5, -1 / 360, 0.5) | |||
|  |         })), | |||
|  |         (o.Map = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           options: { | |||
|  |             crs: o.CRS.EPSG3857, | |||
|  |             fadeAnimation: o.DomUtil.TRANSITION && !o.Browser.android23, | |||
|  |             trackResize: !0, | |||
|  |             markerZoomAnimation: o.DomUtil.TRANSITION && o.Browser.any3d | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             ;(e = o.setOptions(this, e)), | |||
|  |               this._initContainer(t), | |||
|  |               this._initLayout(), | |||
|  |               (this._onResize = o.bind(this._onResize, this)), | |||
|  |               this._initEvents(), | |||
|  |               e.maxBounds && this.setMaxBounds(e.maxBounds), | |||
|  |               e.center && | |||
|  |                 e.zoom !== i && | |||
|  |                 this.setView(o.latLng(e.center), e.zoom, { reset: !0 }), | |||
|  |               (this._handlers = []), | |||
|  |               (this._layers = {}), | |||
|  |               (this._zoomBoundLayers = {}), | |||
|  |               (this._tileLayersNum = 0), | |||
|  |               this.callInitHooks(), | |||
|  |               this._addLayers(e.layers) | |||
|  |           }, | |||
|  |           setView: function(t, e) { | |||
|  |             return ( | |||
|  |               (e = e === i ? this.getZoom() : e), | |||
|  |               this._resetView(o.latLng(t), this._limitZoom(e)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           setZoom: function(t, e) { | |||
|  |             return this._loaded | |||
|  |               ? this.setView(this.getCenter(), t, { zoom: e }) | |||
|  |               : ((this._zoom = this._limitZoom(t)), this) | |||
|  |           }, | |||
|  |           zoomIn: function(t, e) { | |||
|  |             return this.setZoom(this._zoom + (t || 1), e) | |||
|  |           }, | |||
|  |           zoomOut: function(t, e) { | |||
|  |             return this.setZoom(this._zoom - (t || 1), e) | |||
|  |           }, | |||
|  |           setZoomAround: function(t, e, i) { | |||
|  |             var n = this.getZoomScale(e), | |||
|  |               s = this.getSize().divideBy(2), | |||
|  |               a = t instanceof o.Point ? t : this.latLngToContainerPoint(t), | |||
|  |               r = a.subtract(s).multiplyBy(1 - 1 / n), | |||
|  |               h = this.containerPointToLatLng(s.add(r)) | |||
|  |             return this.setView(h, e, { zoom: i }) | |||
|  |           }, | |||
|  |           fitBounds: function(t, e) { | |||
|  |             ;(e = e || {}), | |||
|  |               (t = t.getBounds ? t.getBounds() : o.latLngBounds(t)) | |||
|  |             var i = o.point(e.paddingTopLeft || e.padding || [0, 0]), | |||
|  |               n = o.point(e.paddingBottomRight || e.padding || [0, 0]), | |||
|  |               s = this.getBoundsZoom(t, !1, i.add(n)) | |||
|  |             s = e.maxZoom ? Math.min(e.maxZoom, s) : s | |||
|  |             var a = n.subtract(i).divideBy(2), | |||
|  |               r = this.project(t.getSouthWest(), s), | |||
|  |               h = this.project(t.getNorthEast(), s), | |||
|  |               l = this.unproject( | |||
|  |                 r | |||
|  |                   .add(h) | |||
|  |                   .divideBy(2) | |||
|  |                   .add(a), | |||
|  |                 s | |||
|  |               ) | |||
|  |             return this.setView(l, s, e) | |||
|  |           }, | |||
|  |           fitWorld: function(t) { | |||
|  |             return this.fitBounds( | |||
|  |               [ | |||
|  |                 [-90, -180], | |||
|  |                 [90, 180] | |||
|  |               ], | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           panTo: function(t, e) { | |||
|  |             return this.setView(t, this._zoom, { pan: e }) | |||
|  |           }, | |||
|  |           panBy: function(t) { | |||
|  |             return ( | |||
|  |               this.fire('movestart'), | |||
|  |               this._rawPanBy(o.point(t)), | |||
|  |               this.fire('move'), | |||
|  |               this.fire('moveend') | |||
|  |             ) | |||
|  |           }, | |||
|  |           setMaxBounds: function(t) { | |||
|  |             return ( | |||
|  |               (t = o.latLngBounds(t)), | |||
|  |               (this.options.maxBounds = t), | |||
|  |               t | |||
|  |                 ? (this._loaded && this._panInsideMaxBounds(), | |||
|  |                   this.on('moveend', this._panInsideMaxBounds, this)) | |||
|  |                 : this.off('moveend', this._panInsideMaxBounds, this) | |||
|  |             ) | |||
|  |           }, | |||
|  |           panInsideBounds: function(t, e) { | |||
|  |             var i = this.getCenter(), | |||
|  |               n = this._limitCenter(i, this._zoom, t) | |||
|  |             return i.equals(n) ? this : this.panTo(n, e) | |||
|  |           }, | |||
|  |           addLayer: function(t) { | |||
|  |             var e = o.stamp(t) | |||
|  |             return this._layers[e] | |||
|  |               ? this | |||
|  |               : ((this._layers[e] = t), | |||
|  |                 !t.options || | |||
|  |                   (isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) || | |||
|  |                   ((this._zoomBoundLayers[e] = t), this._updateZoomLevels()), | |||
|  |                 this.options.zoomAnimation && | |||
|  |                   o.TileLayer && | |||
|  |                   t instanceof o.TileLayer && | |||
|  |                   (this._tileLayersNum++, | |||
|  |                   this._tileLayersToLoad++, | |||
|  |                   t.on('load', this._onTileLayerLoad, this)), | |||
|  |                 this._loaded && this._layerAdd(t), | |||
|  |                 this) | |||
|  |           }, | |||
|  |           removeLayer: function(t) { | |||
|  |             var e = o.stamp(t) | |||
|  |             return this._layers[e] | |||
|  |               ? (this._loaded && t.onRemove(this), | |||
|  |                 delete this._layers[e], | |||
|  |                 this._loaded && this.fire('layerremove', { layer: t }), | |||
|  |                 this._zoomBoundLayers[e] && | |||
|  |                   (delete this._zoomBoundLayers[e], this._updateZoomLevels()), | |||
|  |                 this.options.zoomAnimation && | |||
|  |                   o.TileLayer && | |||
|  |                   t instanceof o.TileLayer && | |||
|  |                   (this._tileLayersNum--, | |||
|  |                   this._tileLayersToLoad--, | |||
|  |                   t.off('load', this._onTileLayerLoad, this)), | |||
|  |                 this) | |||
|  |               : this | |||
|  |           }, | |||
|  |           hasLayer: function(t) { | |||
|  |             return t ? o.stamp(t) in this._layers : !1 | |||
|  |           }, | |||
|  |           eachLayer: function(t, e) { | |||
|  |             for (var i in this._layers) t.call(e, this._layers[i]) | |||
|  |             return this | |||
|  |           }, | |||
|  |           invalidateSize: function(t) { | |||
|  |             if (!this._loaded) return this | |||
|  |             t = o.extend( | |||
|  |               { animate: !1, pan: !0 }, | |||
|  |               t === !0 ? { animate: !0 } : t | |||
|  |             ) | |||
|  |             var e = this.getSize() | |||
|  |             ;(this._sizeChanged = !0), (this._initialCenter = null) | |||
|  |             var i = this.getSize(), | |||
|  |               n = e.divideBy(2).round(), | |||
|  |               s = i.divideBy(2).round(), | |||
|  |               a = n.subtract(s) | |||
|  |             return a.x || a.y | |||
|  |               ? (t.animate && t.pan | |||
|  |                   ? this.panBy(a) | |||
|  |                   : (t.pan && this._rawPanBy(a), | |||
|  |                     this.fire('move'), | |||
|  |                     t.debounceMoveend | |||
|  |                       ? (clearTimeout(this._sizeTimer), | |||
|  |                         (this._sizeTimer = setTimeout( | |||
|  |                           o.bind(this.fire, this, 'moveend'), | |||
|  |                           200 | |||
|  |                         ))) | |||
|  |                       : this.fire('moveend')), | |||
|  |                 this.fire('resize', { | |||
|  |                   oldSize: e, | |||
|  |                   newSize: i | |||
|  |                 })) | |||
|  |               : this | |||
|  |           }, | |||
|  |           addHandler: function(t, e) { | |||
|  |             if (!e) return this | |||
|  |             var i = (this[t] = new e(this)) | |||
|  |             return this._handlers.push(i), this.options[t] && i.enable(), this | |||
|  |           }, | |||
|  |           remove: function() { | |||
|  |             this._loaded && this.fire('unload'), this._initEvents('off') | |||
|  |             try { | |||
|  |               delete this._container._leaflet | |||
|  |             } catch (t) { | |||
|  |               this._container._leaflet = i | |||
|  |             } | |||
|  |             return ( | |||
|  |               this._clearPanes(), | |||
|  |               this._clearControlPos && this._clearControlPos(), | |||
|  |               this._clearHandlers(), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getCenter: function() { | |||
|  |             return ( | |||
|  |               this._checkIfLoaded(), | |||
|  |               this._initialCenter && !this._moved() | |||
|  |                 ? this._initialCenter | |||
|  |                 : this.layerPointToLatLng(this._getCenterLayerPoint()) | |||
|  |             ) | |||
|  |           }, | |||
|  |           getZoom: function() { | |||
|  |             return this._zoom | |||
|  |           }, | |||
|  |           getBounds: function() { | |||
|  |             var t = this.getPixelBounds(), | |||
|  |               e = this.unproject(t.getBottomLeft()), | |||
|  |               i = this.unproject(t.getTopRight()) | |||
|  |             return new o.LatLngBounds(e, i) | |||
|  |           }, | |||
|  |           getMinZoom: function() { | |||
|  |             return this.options.minZoom === i | |||
|  |               ? this._layersMinZoom === i | |||
|  |                 ? 0 | |||
|  |                 : this._layersMinZoom | |||
|  |               : this.options.minZoom | |||
|  |           }, | |||
|  |           getMaxZoom: function() { | |||
|  |             return this.options.maxZoom === i | |||
|  |               ? this._layersMaxZoom === i | |||
|  |                 ? 1 / 0 | |||
|  |                 : this._layersMaxZoom | |||
|  |               : this.options.maxZoom | |||
|  |           }, | |||
|  |           getBoundsZoom: function(t, e, i) { | |||
|  |             t = o.latLngBounds(t) | |||
|  |             var n, | |||
|  |               s = this.getMinZoom() - (e ? 1 : 0), | |||
|  |               a = this.getMaxZoom(), | |||
|  |               r = this.getSize(), | |||
|  |               h = t.getNorthWest(), | |||
|  |               l = t.getSouthEast(), | |||
|  |               u = !0 | |||
|  |             i = o.point(i || [0, 0]) | |||
|  |             do | |||
|  |               s++, | |||
|  |                 (n = this.project(l, s) | |||
|  |                   .subtract(this.project(h, s)) | |||
|  |                   .add(i)), | |||
|  |                 (u = e ? n.x < r.x || n.y < r.y : r.contains(n)) | |||
|  |             while (u && a >= s) | |||
|  |             return u && e ? null : e ? s : s - 1 | |||
|  |           }, | |||
|  |           getSize: function() { | |||
|  |             return ( | |||
|  |               (!this._size || this._sizeChanged) && | |||
|  |                 ((this._size = new o.Point( | |||
|  |                   this._container.clientWidth, | |||
|  |                   this._container.clientHeight | |||
|  |                 )), | |||
|  |                 (this._sizeChanged = !1)), | |||
|  |               this._size.clone() | |||
|  |             ) | |||
|  |           }, | |||
|  |           getPixelBounds: function() { | |||
|  |             var t = this._getTopLeftPoint() | |||
|  |             return new o.Bounds(t, t.add(this.getSize())) | |||
|  |           }, | |||
|  |           getPixelOrigin: function() { | |||
|  |             return this._checkIfLoaded(), this._initialTopLeftPoint | |||
|  |           }, | |||
|  |           getPanes: function() { | |||
|  |             return this._panes | |||
|  |           }, | |||
|  |           getContainer: function() { | |||
|  |             return this._container | |||
|  |           }, | |||
|  |           getZoomScale: function(t) { | |||
|  |             var e = this.options.crs | |||
|  |             return e.scale(t) / e.scale(this._zoom) | |||
|  |           }, | |||
|  |           getScaleZoom: function(t) { | |||
|  |             return this._zoom + Math.log(t) / Math.LN2 | |||
|  |           }, | |||
|  |           project: function(t, e) { | |||
|  |             return ( | |||
|  |               (e = e === i ? this._zoom : e), | |||
|  |               this.options.crs.latLngToPoint(o.latLng(t), e) | |||
|  |             ) | |||
|  |           }, | |||
|  |           unproject: function(t, e) { | |||
|  |             return ( | |||
|  |               (e = e === i ? this._zoom : e), | |||
|  |               this.options.crs.pointToLatLng(o.point(t), e) | |||
|  |             ) | |||
|  |           }, | |||
|  |           layerPointToLatLng: function(t) { | |||
|  |             var e = o.point(t).add(this.getPixelOrigin()) | |||
|  |             return this.unproject(e) | |||
|  |           }, | |||
|  |           latLngToLayerPoint: function(t) { | |||
|  |             var e = this.project(o.latLng(t))._round() | |||
|  |             return e._subtract(this.getPixelOrigin()) | |||
|  |           }, | |||
|  |           containerPointToLayerPoint: function(t) { | |||
|  |             return o.point(t).subtract(this._getMapPanePos()) | |||
|  |           }, | |||
|  |           layerPointToContainerPoint: function(t) { | |||
|  |             return o.point(t).add(this._getMapPanePos()) | |||
|  |           }, | |||
|  |           containerPointToLatLng: function(t) { | |||
|  |             var e = this.containerPointToLayerPoint(o.point(t)) | |||
|  |             return this.layerPointToLatLng(e) | |||
|  |           }, | |||
|  |           latLngToContainerPoint: function(t) { | |||
|  |             return this.layerPointToContainerPoint( | |||
|  |               this.latLngToLayerPoint(o.latLng(t)) | |||
|  |             ) | |||
|  |           }, | |||
|  |           mouseEventToContainerPoint: function(t) { | |||
|  |             return o.DomEvent.getMousePosition(t, this._container) | |||
|  |           }, | |||
|  |           mouseEventToLayerPoint: function(t) { | |||
|  |             return this.containerPointToLayerPoint( | |||
|  |               this.mouseEventToContainerPoint(t) | |||
|  |             ) | |||
|  |           }, | |||
|  |           mouseEventToLatLng: function(t) { | |||
|  |             return this.layerPointToLatLng(this.mouseEventToLayerPoint(t)) | |||
|  |           }, | |||
|  |           _initContainer: function(t) { | |||
|  |             var e = (this._container = o.DomUtil.get(t)) | |||
|  |             if (!e) throw new Error('Map container not found.') | |||
|  |             if (e._leaflet) | |||
|  |               throw new Error('Map container is already initialized.') | |||
|  |             e._leaflet = !0 | |||
|  |           }, | |||
|  |           _initLayout: function() { | |||
|  |             var t = this._container | |||
|  |             o.DomUtil.addClass( | |||
|  |               t, | |||
|  |               'leaflet-container' + | |||
|  |                 (o.Browser.touch ? ' leaflet-touch' : '') + | |||
|  |                 (o.Browser.retina ? ' leaflet-retina' : '') + | |||
|  |                 (o.Browser.ielt9 ? ' leaflet-oldie' : '') + | |||
|  |                 (this.options.fadeAnimation ? ' leaflet-fade-anim' : '') | |||
|  |             ) | |||
|  |             var e = o.DomUtil.getStyle(t, 'position') | |||
|  |             'absolute' !== e && | |||
|  |               'relative' !== e && | |||
|  |               'fixed' !== e && | |||
|  |               (t.style.position = 'relative'), | |||
|  |               this._initPanes(), | |||
|  |               this._initControlPos && this._initControlPos() | |||
|  |           }, | |||
|  |           _initPanes: function() { | |||
|  |             var t = (this._panes = {}) | |||
|  |             ;(this._mapPane = t.mapPane = this._createPane( | |||
|  |               'leaflet-map-pane', | |||
|  |               this._container | |||
|  |             )), | |||
|  |               (this._tilePane = t.tilePane = this._createPane( | |||
|  |                 'leaflet-tile-pane', | |||
|  |                 this._mapPane | |||
|  |               )), | |||
|  |               (t.objectsPane = this._createPane( | |||
|  |                 'leaflet-objects-pane', | |||
|  |                 this._mapPane | |||
|  |               )), | |||
|  |               (t.shadowPane = this._createPane('leaflet-shadow-pane')), | |||
|  |               (t.overlayPane = this._createPane('leaflet-overlay-pane')), | |||
|  |               (t.markerPane = this._createPane('leaflet-marker-pane')), | |||
|  |               (t.popupPane = this._createPane('leaflet-popup-pane')) | |||
|  |             var e = ' leaflet-zoom-hide' | |||
|  |             this.options.markerZoomAnimation || | |||
|  |               (o.DomUtil.addClass(t.markerPane, e), | |||
|  |               o.DomUtil.addClass(t.shadowPane, e), | |||
|  |               o.DomUtil.addClass(t.popupPane, e)) | |||
|  |           }, | |||
|  |           _createPane: function(t, e) { | |||
|  |             return o.DomUtil.create('div', t, e || this._panes.objectsPane) | |||
|  |           }, | |||
|  |           _clearPanes: function() { | |||
|  |             this._container.removeChild(this._mapPane) | |||
|  |           }, | |||
|  |           _addLayers: function(t) { | |||
|  |             t = t ? (o.Util.isArray(t) ? t : [t]) : [] | |||
|  |             for (var e = 0, i = t.length; i > e; e++) this.addLayer(t[e]) | |||
|  |           }, | |||
|  |           _resetView: function(t, e, i, n) { | |||
|  |             var s = this._zoom !== e | |||
|  |             n || (this.fire('movestart'), s && this.fire('zoomstart')), | |||
|  |               (this._zoom = e), | |||
|  |               (this._initialCenter = t), | |||
|  |               (this._initialTopLeftPoint = this._getNewTopLeftPoint(t)), | |||
|  |               i | |||
|  |                 ? this._initialTopLeftPoint._add(this._getMapPanePos()) | |||
|  |                 : o.DomUtil.setPosition(this._mapPane, new o.Point(0, 0)), | |||
|  |               (this._tileLayersToLoad = this._tileLayersNum) | |||
|  |             var a = !this._loaded | |||
|  |             ;(this._loaded = !0), | |||
|  |               this.fire('viewreset', { hard: !i }), | |||
|  |               a && (this.fire('load'), this.eachLayer(this._layerAdd, this)), | |||
|  |               this.fire('move'), | |||
|  |               (s || n) && this.fire('zoomend'), | |||
|  |               this.fire('moveend', { hard: !i }) | |||
|  |           }, | |||
|  |           _rawPanBy: function(t) { | |||
|  |             o.DomUtil.setPosition( | |||
|  |               this._mapPane, | |||
|  |               this._getMapPanePos().subtract(t) | |||
|  |             ) | |||
|  |           }, | |||
|  |           _getZoomSpan: function() { | |||
|  |             return this.getMaxZoom() - this.getMinZoom() | |||
|  |           }, | |||
|  |           _updateZoomLevels: function() { | |||
|  |             var t, | |||
|  |               e = 1 / 0, | |||
|  |               n = -(1 / 0), | |||
|  |               o = this._getZoomSpan() | |||
|  |             for (t in this._zoomBoundLayers) { | |||
|  |               var s = this._zoomBoundLayers[t] | |||
|  |               isNaN(s.options.minZoom) || (e = Math.min(e, s.options.minZoom)), | |||
|  |                 isNaN(s.options.maxZoom) || (n = Math.max(n, s.options.maxZoom)) | |||
|  |             } | |||
|  |             t === i | |||
|  |               ? (this._layersMaxZoom = this._layersMinZoom = i) | |||
|  |               : ((this._layersMaxZoom = n), (this._layersMinZoom = e)), | |||
|  |               o !== this._getZoomSpan() && this.fire('zoomlevelschange') | |||
|  |           }, | |||
|  |           _panInsideMaxBounds: function() { | |||
|  |             this.panInsideBounds(this.options.maxBounds) | |||
|  |           }, | |||
|  |           _checkIfLoaded: function() { | |||
|  |             if (!this._loaded) throw new Error('Set map center and zoom first.') | |||
|  |           }, | |||
|  |           _initEvents: function(e) { | |||
|  |             if (o.DomEvent) { | |||
|  |               ;(e = e || 'on'), | |||
|  |                 o.DomEvent[e]( | |||
|  |                   this._container, | |||
|  |                   'click', | |||
|  |                   this._onMouseClick, | |||
|  |                   this | |||
|  |                 ) | |||
|  |               var i, | |||
|  |                 n, | |||
|  |                 s = [ | |||
|  |                   'dblclick', | |||
|  |                   'mousedown', | |||
|  |                   'mouseup', | |||
|  |                   'mouseenter', | |||
|  |                   'mouseleave', | |||
|  |                   'mousemove', | |||
|  |                   'contextmenu' | |||
|  |                 ] | |||
|  |               for (i = 0, n = s.length; n > i; i++) | |||
|  |                 o.DomEvent[e](this._container, s[i], this._fireMouseEvent, this) | |||
|  |               this.options.trackResize && | |||
|  |                 o.DomEvent[e](t, 'resize', this._onResize, this) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onResize: function() { | |||
|  |             o.Util.cancelAnimFrame(this._resizeRequest), | |||
|  |               (this._resizeRequest = o.Util.requestAnimFrame( | |||
|  |                 function() { | |||
|  |                   this.invalidateSize({ debounceMoveend: !0 }) | |||
|  |                 }, | |||
|  |                 this, | |||
|  |                 !1, | |||
|  |                 this._container | |||
|  |               )) | |||
|  |           }, | |||
|  |           _onMouseClick: function(t) { | |||
|  |             !this._loaded || | |||
|  |               (!t._simulated && | |||
|  |                 ((this.dragging && this.dragging.moved()) || | |||
|  |                   (this.boxZoom && this.boxZoom.moved()))) || | |||
|  |               o.DomEvent._skipped(t) || | |||
|  |               (this.fire('preclick'), this._fireMouseEvent(t)) | |||
|  |           }, | |||
|  |           _fireMouseEvent: function(t) { | |||
|  |             if (this._loaded && !o.DomEvent._skipped(t)) { | |||
|  |               var e = t.type | |||
|  |               if ( | |||
|  |                 ((e = | |||
|  |                   'mouseenter' === e | |||
|  |                     ? 'mouseover' | |||
|  |                     : 'mouseleave' === e | |||
|  |                     ? 'mouseout' | |||
|  |                     : e), | |||
|  |                 this.hasEventListeners(e)) | |||
|  |               ) { | |||
|  |                 'contextmenu' === e && o.DomEvent.preventDefault(t) | |||
|  |                 var i = this.mouseEventToContainerPoint(t), | |||
|  |                   n = this.containerPointToLayerPoint(i), | |||
|  |                   s = this.layerPointToLatLng(n) | |||
|  |                 this.fire(e, { | |||
|  |                   latlng: s, | |||
|  |                   layerPoint: n, | |||
|  |                   containerPoint: i, | |||
|  |                   originalEvent: t | |||
|  |                 }) | |||
|  |               } | |||
|  |             } | |||
|  |           }, | |||
|  |           _onTileLayerLoad: function() { | |||
|  |             this._tileLayersToLoad--, | |||
|  |               this._tileLayersNum && | |||
|  |                 !this._tileLayersToLoad && | |||
|  |                 this.fire('tilelayersload') | |||
|  |           }, | |||
|  |           _clearHandlers: function() { | |||
|  |             for (var t = 0, e = this._handlers.length; e > t; t++) | |||
|  |               this._handlers[t].disable() | |||
|  |           }, | |||
|  |           whenReady: function(t, e) { | |||
|  |             return ( | |||
|  |               this._loaded ? t.call(e || this, this) : this.on('load', t, e), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _layerAdd: function(t) { | |||
|  |             t.onAdd(this), this.fire('layeradd', { layer: t }) | |||
|  |           }, | |||
|  |           _getMapPanePos: function() { | |||
|  |             return o.DomUtil.getPosition(this._mapPane) | |||
|  |           }, | |||
|  |           _moved: function() { | |||
|  |             var t = this._getMapPanePos() | |||
|  |             return t && !t.equals([0, 0]) | |||
|  |           }, | |||
|  |           _getTopLeftPoint: function() { | |||
|  |             return this.getPixelOrigin().subtract(this._getMapPanePos()) | |||
|  |           }, | |||
|  |           _getNewTopLeftPoint: function(t, e) { | |||
|  |             var i = this.getSize()._divideBy(2) | |||
|  |             return this.project(t, e) | |||
|  |               ._subtract(i) | |||
|  |               ._round() | |||
|  |           }, | |||
|  |           _latLngToNewLayerPoint: function(t, e, i) { | |||
|  |             var n = this._getNewTopLeftPoint(i, e).add(this._getMapPanePos()) | |||
|  |             return this.project(t, e)._subtract(n) | |||
|  |           }, | |||
|  |           _getCenterLayerPoint: function() { | |||
|  |             return this.containerPointToLayerPoint(this.getSize()._divideBy(2)) | |||
|  |           }, | |||
|  |           _getCenterOffset: function(t) { | |||
|  |             return this.latLngToLayerPoint(t).subtract( | |||
|  |               this._getCenterLayerPoint() | |||
|  |             ) | |||
|  |           }, | |||
|  |           _limitCenter: function(t, e, i) { | |||
|  |             if (!i) return t | |||
|  |             var n = this.project(t, e), | |||
|  |               s = this.getSize().divideBy(2), | |||
|  |               a = new o.Bounds(n.subtract(s), n.add(s)), | |||
|  |               r = this._getBoundsOffset(a, i, e) | |||
|  |             return this.unproject(n.add(r), e) | |||
|  |           }, | |||
|  |           _limitOffset: function(t, e) { | |||
|  |             if (!e) return t | |||
|  |             var i = this.getPixelBounds(), | |||
|  |               n = new o.Bounds(i.min.add(t), i.max.add(t)) | |||
|  |             return t.add(this._getBoundsOffset(n, e)) | |||
|  |           }, | |||
|  |           _getBoundsOffset: function(t, e, i) { | |||
|  |             var n = this.project(e.getNorthWest(), i).subtract(t.min), | |||
|  |               s = this.project(e.getSouthEast(), i).subtract(t.max), | |||
|  |               a = this._rebound(n.x, -s.x), | |||
|  |               r = this._rebound(n.y, -s.y) | |||
|  |             return new o.Point(a, r) | |||
|  |           }, | |||
|  |           _rebound: function(t, e) { | |||
|  |             return t + e > 0 | |||
|  |               ? Math.round(t - e) / 2 | |||
|  |               : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e)) | |||
|  |           }, | |||
|  |           _limitZoom: function(t) { | |||
|  |             var e = this.getMinZoom(), | |||
|  |               i = this.getMaxZoom() | |||
|  |             return Math.max(e, Math.min(i, t)) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.map = function(t, e) { | |||
|  |           return new o.Map(t, e) | |||
|  |         }), | |||
|  |         (o.Projection.Mercator = { | |||
|  |           MAX_LATITUDE: 85.0840591556, | |||
|  |           R_MINOR: 6356752.314245179, | |||
|  |           R_MAJOR: 6378137, | |||
|  |           project: function(t) { | |||
|  |             var e = o.LatLng.DEG_TO_RAD, | |||
|  |               i = this.MAX_LATITUDE, | |||
|  |               n = Math.max(Math.min(i, t.lat), -i), | |||
|  |               s = this.R_MAJOR, | |||
|  |               a = this.R_MINOR, | |||
|  |               r = t.lng * e * s, | |||
|  |               h = n * e, | |||
|  |               l = a / s, | |||
|  |               u = Math.sqrt(1 - l * l), | |||
|  |               c = u * Math.sin(h) | |||
|  |             c = Math.pow((1 - c) / (1 + c), 0.5 * u) | |||
|  |             var d = Math.tan(0.5 * (0.5 * Math.PI - h)) / c | |||
|  |             return (h = -s * Math.log(d)), new o.Point(r, h) | |||
|  |           }, | |||
|  |           unproject: function(t) { | |||
|  |             for ( | |||
|  |               var e, | |||
|  |                 i = o.LatLng.RAD_TO_DEG, | |||
|  |                 n = this.R_MAJOR, | |||
|  |                 s = this.R_MINOR, | |||
|  |                 a = (t.x * i) / n, | |||
|  |                 r = s / n, | |||
|  |                 h = Math.sqrt(1 - r * r), | |||
|  |                 l = Math.exp(-t.y / n), | |||
|  |                 u = Math.PI / 2 - 2 * Math.atan(l), | |||
|  |                 c = 15, | |||
|  |                 d = 1e-7, | |||
|  |                 p = c, | |||
|  |                 _ = 0.1; | |||
|  |               Math.abs(_) > d && --p > 0; | |||
|  | 
 | |||
|  |             ) | |||
|  |               (e = h * Math.sin(u)), | |||
|  |                 (_ = | |||
|  |                   Math.PI / 2 - | |||
|  |                   2 * Math.atan(l * Math.pow((1 - e) / (1 + e), 0.5 * h)) - | |||
|  |                   u), | |||
|  |                 (u += _) | |||
|  |             return new o.LatLng(u * i, a) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.CRS.EPSG3395 = o.extend({}, o.CRS, { | |||
|  |           code: 'EPSG:3395', | |||
|  |           projection: o.Projection.Mercator, | |||
|  |           transformation: (function() { | |||
|  |             var t = o.Projection.Mercator, | |||
|  |               e = t.R_MAJOR, | |||
|  |               i = 0.5 / (Math.PI * e) | |||
|  |             return new o.Transformation(i, 0.5, -i, 0.5) | |||
|  |           })() | |||
|  |         })), | |||
|  |         (o.TileLayer = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           options: { | |||
|  |             minZoom: 0, | |||
|  |             maxZoom: 18, | |||
|  |             tileSize: 256, | |||
|  |             subdomains: 'abc', | |||
|  |             errorTileUrl: '', | |||
|  |             attribution: '', | |||
|  |             zoomOffset: 0, | |||
|  |             opacity: 1, | |||
|  |             unloadInvisibleTiles: o.Browser.mobile, | |||
|  |             updateWhenIdle: o.Browser.mobile | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             ;(e = o.setOptions(this, e)), | |||
|  |               e.detectRetina && | |||
|  |                 o.Browser.retina && | |||
|  |                 e.maxZoom > 0 && | |||
|  |                 ((e.tileSize = Math.floor(e.tileSize / 2)), | |||
|  |                 e.zoomOffset++, | |||
|  |                 e.minZoom > 0 && e.minZoom--, | |||
|  |                 this.options.maxZoom--), | |||
|  |               e.bounds && (e.bounds = o.latLngBounds(e.bounds)), | |||
|  |               (this._url = t) | |||
|  |             var i = this.options.subdomains | |||
|  |             'string' == typeof i && (this.options.subdomains = i.split('')) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               (this._animated = t._zoomAnimated), | |||
|  |               this._initContainer(), | |||
|  |               t.on( | |||
|  |                 { | |||
|  |                   viewreset: this._reset, | |||
|  |                   moveend: this._update | |||
|  |                 }, | |||
|  |                 this | |||
|  |               ), | |||
|  |               this._animated && | |||
|  |                 t.on( | |||
|  |                   { | |||
|  |                     zoomanim: this._animateZoom, | |||
|  |                     zoomend: this._endZoomAnim | |||
|  |                   }, | |||
|  |                   this | |||
|  |                 ), | |||
|  |               this.options.updateWhenIdle || | |||
|  |                 ((this._limitedUpdate = o.Util.limitExecByInterval( | |||
|  |                   this._update, | |||
|  |                   150, | |||
|  |                   this | |||
|  |                 )), | |||
|  |                 t.on('move', this._limitedUpdate, this)), | |||
|  |               this._reset(), | |||
|  |               this._update() | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             this._container.parentNode.removeChild(this._container), | |||
|  |               t.off( | |||
|  |                 { | |||
|  |                   viewreset: this._reset, | |||
|  |                   moveend: this._update | |||
|  |                 }, | |||
|  |                 this | |||
|  |               ), | |||
|  |               this._animated && | |||
|  |                 t.off( | |||
|  |                   { | |||
|  |                     zoomanim: this._animateZoom, | |||
|  |                     zoomend: this._endZoomAnim | |||
|  |                   }, | |||
|  |                   this | |||
|  |                 ), | |||
|  |               this.options.updateWhenIdle || | |||
|  |                 t.off('move', this._limitedUpdate, this), | |||
|  |               (this._container = null), | |||
|  |               (this._map = null) | |||
|  |           }, | |||
|  |           bringToFront: function() { | |||
|  |             var t = this._map._panes.tilePane | |||
|  |             return ( | |||
|  |               this._container && | |||
|  |                 (t.appendChild(this._container), | |||
|  |                 this._setAutoZIndex(t, Math.max)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           bringToBack: function() { | |||
|  |             var t = this._map._panes.tilePane | |||
|  |             return ( | |||
|  |               this._container && | |||
|  |                 (t.insertBefore(this._container, t.firstChild), | |||
|  |                 this._setAutoZIndex(t, Math.min)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getAttribution: function() { | |||
|  |             return this.options.attribution | |||
|  |           }, | |||
|  |           getContainer: function() { | |||
|  |             return this._container | |||
|  |           }, | |||
|  |           setOpacity: function(t) { | |||
|  |             return ( | |||
|  |               (this.options.opacity = t), | |||
|  |               this._map && this._updateOpacity(), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           setZIndex: function(t) { | |||
|  |             return (this.options.zIndex = t), this._updateZIndex(), this | |||
|  |           }, | |||
|  |           setUrl: function(t, e) { | |||
|  |             return (this._url = t), e || this.redraw(), this | |||
|  |           }, | |||
|  |           redraw: function() { | |||
|  |             return ( | |||
|  |               this._map && (this._reset({ hard: !0 }), this._update()), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _updateZIndex: function() { | |||
|  |             this._container && | |||
|  |               this.options.zIndex !== i && | |||
|  |               (this._container.style.zIndex = this.options.zIndex) | |||
|  |           }, | |||
|  |           _setAutoZIndex: function(t, e) { | |||
|  |             var i, | |||
|  |               n, | |||
|  |               o, | |||
|  |               s = t.children, | |||
|  |               a = -e(1 / 0, -(1 / 0)) | |||
|  |             for (n = 0, o = s.length; o > n; n++) | |||
|  |               s[n] !== this._container && | |||
|  |                 ((i = parseInt(s[n].style.zIndex, 10)), | |||
|  |                 isNaN(i) || (a = e(a, i))) | |||
|  |             this.options.zIndex = this._container.style.zIndex = | |||
|  |               (isFinite(a) ? a : 0) + e(1, -1) | |||
|  |           }, | |||
|  |           _updateOpacity: function() { | |||
|  |             var t, | |||
|  |               e = this._tiles | |||
|  |             if (o.Browser.ielt9) | |||
|  |               for (t in e) o.DomUtil.setOpacity(e[t], this.options.opacity) | |||
|  |             else o.DomUtil.setOpacity(this._container, this.options.opacity) | |||
|  |           }, | |||
|  |           _initContainer: function() { | |||
|  |             var t = this._map._panes.tilePane | |||
|  |             if (!this._container) { | |||
|  |               if ( | |||
|  |                 ((this._container = o.DomUtil.create('div', 'leaflet-layer')), | |||
|  |                 this._updateZIndex(), | |||
|  |                 this._animated) | |||
|  |               ) { | |||
|  |                 var e = 'leaflet-tile-container' | |||
|  |                 ;(this._bgBuffer = o.DomUtil.create('div', e, this._container)), | |||
|  |                   (this._tileContainer = o.DomUtil.create( | |||
|  |                     'div', | |||
|  |                     e, | |||
|  |                     this._container | |||
|  |                   )) | |||
|  |               } else this._tileContainer = this._container | |||
|  |               t.appendChild(this._container), | |||
|  |                 this.options.opacity < 1 && this._updateOpacity() | |||
|  |             } | |||
|  |           }, | |||
|  |           _reset: function(t) { | |||
|  |             for (var e in this._tiles) | |||
|  |               this.fire('tileunload', { tile: this._tiles[e] }) | |||
|  |             ;(this._tiles = {}), | |||
|  |               (this._tilesToLoad = 0), | |||
|  |               this.options.reuseTiles && (this._unusedTiles = []), | |||
|  |               (this._tileContainer.innerHTML = ''), | |||
|  |               this._animated && t && t.hard && this._clearBgBuffer(), | |||
|  |               this._initContainer() | |||
|  |           }, | |||
|  |           _getTileSize: function() { | |||
|  |             var t = this._map, | |||
|  |               e = t.getZoom() + this.options.zoomOffset, | |||
|  |               i = this.options.maxNativeZoom, | |||
|  |               n = this.options.tileSize | |||
|  |             return ( | |||
|  |               i && | |||
|  |                 e > i && | |||
|  |                 (n = Math.round((t.getZoomScale(e) / t.getZoomScale(i)) * n)), | |||
|  |               n | |||
|  |             ) | |||
|  |           }, | |||
|  |           _update: function() { | |||
|  |             if (this._map) { | |||
|  |               var t = this._map, | |||
|  |                 e = t.getPixelBounds(), | |||
|  |                 i = t.getZoom(), | |||
|  |                 n = this._getTileSize() | |||
|  |               if (!(i > this.options.maxZoom || i < this.options.minZoom)) { | |||
|  |                 var s = o.bounds( | |||
|  |                   e.min.divideBy(n)._floor(), | |||
|  |                   e.max.divideBy(n)._floor() | |||
|  |                 ) | |||
|  |                 this._addTilesFromCenterOut(s), | |||
|  |                   (this.options.unloadInvisibleTiles || | |||
|  |                     this.options.reuseTiles) && | |||
|  |                     this._removeOtherTiles(s) | |||
|  |               } | |||
|  |             } | |||
|  |           }, | |||
|  |           _addTilesFromCenterOut: function(t) { | |||
|  |             var i, | |||
|  |               n, | |||
|  |               s, | |||
|  |               a = [], | |||
|  |               r = t.getCenter() | |||
|  |             for (i = t.min.y; i <= t.max.y; i++) | |||
|  |               for (n = t.min.x; n <= t.max.x; n++) | |||
|  |                 (s = new o.Point(n, i)), | |||
|  |                   this._tileShouldBeLoaded(s) && a.push(s) | |||
|  |             var h = a.length | |||
|  |             if (0 !== h) { | |||
|  |               a.sort(function(t, e) { | |||
|  |                 return t.distanceTo(r) - e.distanceTo(r) | |||
|  |               }) | |||
|  |               var l = e.createDocumentFragment() | |||
|  |               for ( | |||
|  |                 this._tilesToLoad || this.fire('loading'), | |||
|  |                   this._tilesToLoad += h, | |||
|  |                   n = 0; | |||
|  |                 h > n; | |||
|  |                 n++ | |||
|  |               ) | |||
|  |                 this._addTile(a[n], l) | |||
|  |               this._tileContainer.appendChild(l) | |||
|  |             } | |||
|  |           }, | |||
|  |           _tileShouldBeLoaded: function(t) { | |||
|  |             if (t.x + ':' + t.y in this._tiles) return !1 | |||
|  |             var e = this.options | |||
|  |             if (!e.continuousWorld) { | |||
|  |               var i = this._getWrapTileNum() | |||
|  |               if ( | |||
|  |                 (e.noWrap && (t.x < 0 || t.x >= i.x)) || | |||
|  |                 t.y < 0 || | |||
|  |                 t.y >= i.y | |||
|  |               ) | |||
|  |                 return !1 | |||
|  |             } | |||
|  |             if (e.bounds) { | |||
|  |               var n = this._getTileSize(), | |||
|  |                 o = t.multiplyBy(n), | |||
|  |                 s = o.add([n, n]), | |||
|  |                 a = this._map.unproject(o), | |||
|  |                 r = this._map.unproject(s) | |||
|  |               if ( | |||
|  |                 (e.continuousWorld || | |||
|  |                   e.noWrap || | |||
|  |                   ((a = a.wrap()), (r = r.wrap())), | |||
|  |                 !e.bounds.intersects([a, r])) | |||
|  |               ) | |||
|  |                 return !1 | |||
|  |             } | |||
|  |             return !0 | |||
|  |           }, | |||
|  |           _removeOtherTiles: function(t) { | |||
|  |             var e, i, n, o | |||
|  |             for (o in this._tiles) | |||
|  |               (e = o.split(':')), | |||
|  |                 (i = parseInt(e[0], 10)), | |||
|  |                 (n = parseInt(e[1], 10)), | |||
|  |                 (i < t.min.x || i > t.max.x || n < t.min.y || n > t.max.y) && | |||
|  |                   this._removeTile(o) | |||
|  |           }, | |||
|  |           _removeTile: function(t) { | |||
|  |             var e = this._tiles[t] | |||
|  |             this.fire('tileunload', { | |||
|  |               tile: e, | |||
|  |               url: e.src | |||
|  |             }), | |||
|  |               this.options.reuseTiles | |||
|  |                 ? (o.DomUtil.removeClass(e, 'leaflet-tile-loaded'), | |||
|  |                   this._unusedTiles.push(e)) | |||
|  |                 : e.parentNode === this._tileContainer && | |||
|  |                   this._tileContainer.removeChild(e), | |||
|  |               o.Browser.android || | |||
|  |                 ((e.onload = null), (e.src = o.Util.emptyImageUrl)), | |||
|  |               delete this._tiles[t] | |||
|  |           }, | |||
|  |           _addTile: function(t, e) { | |||
|  |             var i = this._getTilePos(t), | |||
|  |               n = this._getTile() | |||
|  |             o.DomUtil.setPosition(n, i, o.Browser.chrome), | |||
|  |               (this._tiles[t.x + ':' + t.y] = n), | |||
|  |               this._loadTile(n, t), | |||
|  |               n.parentNode !== this._tileContainer && e.appendChild(n) | |||
|  |           }, | |||
|  |           _getZoomForUrl: function() { | |||
|  |             var t = this.options, | |||
|  |               e = this._map.getZoom() | |||
|  |             return ( | |||
|  |               t.zoomReverse && (e = t.maxZoom - e), | |||
|  |               (e += t.zoomOffset), | |||
|  |               t.maxNativeZoom ? Math.min(e, t.maxNativeZoom) : e | |||
|  |             ) | |||
|  |           }, | |||
|  |           _getTilePos: function(t) { | |||
|  |             var e = this._map.getPixelOrigin(), | |||
|  |               i = this._getTileSize() | |||
|  |             return t.multiplyBy(i).subtract(e) | |||
|  |           }, | |||
|  |           getTileUrl: function(t) { | |||
|  |             return o.Util.template( | |||
|  |               this._url, | |||
|  |               o.extend( | |||
|  |                 { s: this._getSubdomain(t), z: t.z, x: t.x, y: t.y }, | |||
|  |                 this.options | |||
|  |               ) | |||
|  |             ) | |||
|  |           }, | |||
|  |           _getWrapTileNum: function() { | |||
|  |             var t = this._map.options.crs, | |||
|  |               e = t.getSize(this._map.getZoom()) | |||
|  |             return e.divideBy(this._getTileSize())._floor() | |||
|  |           }, | |||
|  |           _adjustTilePoint: function(t) { | |||
|  |             var e = this._getWrapTileNum() | |||
|  |             this.options.continuousWorld || | |||
|  |               this.options.noWrap || | |||
|  |               (t.x = ((t.x % e.x) + e.x) % e.x), | |||
|  |               this.options.tms && (t.y = e.y - t.y - 1), | |||
|  |               (t.z = this._getZoomForUrl()) | |||
|  |           }, | |||
|  |           _getSubdomain: function(t) { | |||
|  |             var e = Math.abs(t.x + t.y) % this.options.subdomains.length | |||
|  |             return this.options.subdomains[e] | |||
|  |           }, | |||
|  |           _getTile: function() { | |||
|  |             if (this.options.reuseTiles && this._unusedTiles.length > 0) { | |||
|  |               var t = this._unusedTiles.pop() | |||
|  |               return this._resetTile(t), t | |||
|  |             } | |||
|  |             return this._createTile() | |||
|  |           }, | |||
|  |           _resetTile: function() {}, | |||
|  |           _createTile: function() { | |||
|  |             var t = o.DomUtil.create('img', 'leaflet-tile') | |||
|  |             return ( | |||
|  |               (t.style.width = t.style.height = this._getTileSize() + 'px'), | |||
|  |               (t.galleryimg = 'no'), | |||
|  |               (t.onselectstart = t.onmousemove = o.Util.falseFn), | |||
|  |               o.Browser.ielt9 && | |||
|  |                 this.options.opacity !== i && | |||
|  |                 o.DomUtil.setOpacity(t, this.options.opacity), | |||
|  |               o.Browser.mobileWebkit3d && | |||
|  |                 (t.style.WebkitBackfaceVisibility = 'hidden'), | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           _loadTile: function(t, e) { | |||
|  |             ;(t._layer = this), | |||
|  |               (t.onload = this._tileOnLoad), | |||
|  |               (t.onerror = this._tileOnError), | |||
|  |               this._adjustTilePoint(e), | |||
|  |               (t.src = this.getTileUrl(e)), | |||
|  |               this.fire('tileloadstart', { | |||
|  |                 tile: t, | |||
|  |                 url: t.src | |||
|  |               }) | |||
|  |           }, | |||
|  |           _tileLoaded: function() { | |||
|  |             this._tilesToLoad--, | |||
|  |               this._animated && | |||
|  |                 o.DomUtil.addClass( | |||
|  |                   this._tileContainer, | |||
|  |                   'leaflet-zoom-animated' | |||
|  |                 ), | |||
|  |               this._tilesToLoad || | |||
|  |                 (this.fire('load'), | |||
|  |                 this._animated && | |||
|  |                   (clearTimeout(this._clearBgBufferTimer), | |||
|  |                   (this._clearBgBufferTimer = setTimeout( | |||
|  |                     o.bind(this._clearBgBuffer, this), | |||
|  |                     500 | |||
|  |                   )))) | |||
|  |           }, | |||
|  |           _tileOnLoad: function() { | |||
|  |             var t = this._layer | |||
|  |             this.src !== o.Util.emptyImageUrl && | |||
|  |               (o.DomUtil.addClass(this, 'leaflet-tile-loaded'), | |||
|  |               t.fire('tileload', { | |||
|  |                 tile: this, | |||
|  |                 url: this.src | |||
|  |               })), | |||
|  |               t._tileLoaded() | |||
|  |           }, | |||
|  |           _tileOnError: function() { | |||
|  |             var t = this._layer | |||
|  |             t.fire('tileerror', { tile: this, url: this.src }) | |||
|  |             var e = t.options.errorTileUrl | |||
|  |             e && (this.src = e), t._tileLoaded() | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.tileLayer = function(t, e) { | |||
|  |           return new o.TileLayer(t, e) | |||
|  |         }), | |||
|  |         (o.TileLayer.WMS = o.TileLayer.extend({ | |||
|  |           defaultWmsParams: { | |||
|  |             service: 'WMS', | |||
|  |             request: 'GetMap', | |||
|  |             version: '1.1.1', | |||
|  |             layers: '', | |||
|  |             styles: '', | |||
|  |             format: 'image/jpeg', | |||
|  |             transparent: !1 | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             this._url = t | |||
|  |             var i = o.extend({}, this.defaultWmsParams), | |||
|  |               n = e.tileSize || this.options.tileSize | |||
|  |             e.detectRetina && o.Browser.retina | |||
|  |               ? (i.width = i.height = 2 * n) | |||
|  |               : (i.width = i.height = n) | |||
|  |             for (var s in e) | |||
|  |               this.options.hasOwnProperty(s) || 'crs' === s || (i[s] = e[s]) | |||
|  |             ;(this.wmsParams = i), o.setOptions(this, e) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._crs = this.options.crs || t.options.crs), | |||
|  |               (this._wmsVersion = parseFloat(this.wmsParams.version)) | |||
|  |             var e = this._wmsVersion >= 1.3 ? 'crs' : 'srs' | |||
|  |             ;(this.wmsParams[e] = this._crs.code), | |||
|  |               o.TileLayer.prototype.onAdd.call(this, t) | |||
|  |           }, | |||
|  |           getTileUrl: function(t) { | |||
|  |             var e = this._map, | |||
|  |               i = this.options.tileSize, | |||
|  |               n = t.multiplyBy(i), | |||
|  |               s = n.add([i, i]), | |||
|  |               a = this._crs.project(e.unproject(n, t.z)), | |||
|  |               r = this._crs.project(e.unproject(s, t.z)), | |||
|  |               h = | |||
|  |                 this._wmsVersion >= 1.3 && this._crs === o.CRS.EPSG4326 | |||
|  |                   ? [r.y, a.x, a.y, r.x].join(',') | |||
|  |                   : [a.x, r.y, r.x, a.y].join(','), | |||
|  |               l = o.Util.template(this._url, { s: this._getSubdomain(t) }) | |||
|  |             return ( | |||
|  |               l + o.Util.getParamString(this.wmsParams, l, !0) + '&BBOX=' + h | |||
|  |             ) | |||
|  |           }, | |||
|  |           setParams: function(t, e) { | |||
|  |             return o.extend(this.wmsParams, t), e || this.redraw(), this | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.tileLayer.wms = function(t, e) { | |||
|  |           return new o.TileLayer.WMS(t, e) | |||
|  |         }), | |||
|  |         (o.TileLayer.Canvas = o.TileLayer.extend({ | |||
|  |           options: { async: !1 }, | |||
|  |           initialize: function(t) { | |||
|  |             o.setOptions(this, t) | |||
|  |           }, | |||
|  |           redraw: function() { | |||
|  |             this._map && (this._reset({ hard: !0 }), this._update()) | |||
|  |             for (var t in this._tiles) this._redrawTile(this._tiles[t]) | |||
|  |             return this | |||
|  |           }, | |||
|  |           _redrawTile: function(t) { | |||
|  |             this.drawTile(t, t._tilePoint, this._map._zoom) | |||
|  |           }, | |||
|  |           _createTile: function() { | |||
|  |             var t = o.DomUtil.create('canvas', 'leaflet-tile') | |||
|  |             return ( | |||
|  |               (t.width = t.height = this.options.tileSize), | |||
|  |               (t.onselectstart = t.onmousemove = o.Util.falseFn), | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           _loadTile: function(t, e) { | |||
|  |             ;(t._layer = this), | |||
|  |               (t._tilePoint = e), | |||
|  |               this._redrawTile(t), | |||
|  |               this.options.async || this.tileDrawn(t) | |||
|  |           }, | |||
|  |           drawTile: function() {}, | |||
|  |           tileDrawn: function(t) { | |||
|  |             this._tileOnLoad.call(t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.tileLayer.canvas = function(t) { | |||
|  |           return new o.TileLayer.Canvas(t) | |||
|  |         }), | |||
|  |         (o.ImageOverlay = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           options: { opacity: 1 }, | |||
|  |           initialize: function(t, e, i) { | |||
|  |             ;(this._url = t), | |||
|  |               (this._bounds = o.latLngBounds(e)), | |||
|  |               o.setOptions(this, i) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               this._image || this._initImage(), | |||
|  |               t._panes.overlayPane.appendChild(this._image), | |||
|  |               t.on('viewreset', this._reset, this), | |||
|  |               t.options.zoomAnimation && | |||
|  |                 o.Browser.any3d && | |||
|  |                 t.on('zoomanim', this._animateZoom, this), | |||
|  |               this._reset() | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t.getPanes().overlayPane.removeChild(this._image), | |||
|  |               t.off('viewreset', this._reset, this), | |||
|  |               t.options.zoomAnimation && | |||
|  |                 t.off('zoomanim', this._animateZoom, this) | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           setOpacity: function(t) { | |||
|  |             return (this.options.opacity = t), this._updateOpacity(), this | |||
|  |           }, | |||
|  |           bringToFront: function() { | |||
|  |             return ( | |||
|  |               this._image && | |||
|  |                 this._map._panes.overlayPane.appendChild(this._image), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           bringToBack: function() { | |||
|  |             var t = this._map._panes.overlayPane | |||
|  |             return ( | |||
|  |               this._image && t.insertBefore(this._image, t.firstChild), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           setUrl: function(t) { | |||
|  |             ;(this._url = t), (this._image.src = this._url) | |||
|  |           }, | |||
|  |           getAttribution: function() { | |||
|  |             return this.options.attribution | |||
|  |           }, | |||
|  |           _initImage: function() { | |||
|  |             ;(this._image = o.DomUtil.create('img', 'leaflet-image-layer')), | |||
|  |               this._map.options.zoomAnimation && o.Browser.any3d | |||
|  |                 ? o.DomUtil.addClass(this._image, 'leaflet-zoom-animated') | |||
|  |                 : o.DomUtil.addClass(this._image, 'leaflet-zoom-hide'), | |||
|  |               this._updateOpacity(), | |||
|  |               o.extend(this._image, { | |||
|  |                 galleryimg: 'no', | |||
|  |                 onselectstart: o.Util.falseFn, | |||
|  |                 onmousemove: o.Util.falseFn, | |||
|  |                 onload: o.bind(this._onImageLoad, this), | |||
|  |                 src: this._url | |||
|  |               }) | |||
|  |           }, | |||
|  |           _animateZoom: function(t) { | |||
|  |             var e = this._map, | |||
|  |               i = this._image, | |||
|  |               n = e.getZoomScale(t.zoom), | |||
|  |               s = this._bounds.getNorthWest(), | |||
|  |               a = this._bounds.getSouthEast(), | |||
|  |               r = e._latLngToNewLayerPoint(s, t.zoom, t.center), | |||
|  |               h = e._latLngToNewLayerPoint(a, t.zoom, t.center)._subtract(r), | |||
|  |               l = r._add(h._multiplyBy(0.5 * (1 - 1 / n))) | |||
|  |             i.style[o.DomUtil.TRANSFORM] = | |||
|  |               o.DomUtil.getTranslateString(l) + ' scale(' + n + ') ' | |||
|  |           }, | |||
|  |           _reset: function() { | |||
|  |             var t = this._image, | |||
|  |               e = this._map.latLngToLayerPoint(this._bounds.getNorthWest()), | |||
|  |               i = this._map | |||
|  |                 .latLngToLayerPoint(this._bounds.getSouthEast()) | |||
|  |                 ._subtract(e) | |||
|  |             o.DomUtil.setPosition(t, e), | |||
|  |               (t.style.width = i.x + 'px'), | |||
|  |               (t.style.height = i.y + 'px') | |||
|  |           }, | |||
|  |           _onImageLoad: function() { | |||
|  |             this.fire('load') | |||
|  |           }, | |||
|  |           _updateOpacity: function() { | |||
|  |             o.DomUtil.setOpacity(this._image, this.options.opacity) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.imageOverlay = function(t, e, i) { | |||
|  |           return new o.ImageOverlay(t, e, i) | |||
|  |         }), | |||
|  |         (o.Icon = o.Class.extend({ | |||
|  |           options: { className: '' }, | |||
|  |           initialize: function(t) { | |||
|  |             o.setOptions(this, t) | |||
|  |           }, | |||
|  |           createIcon: function(t) { | |||
|  |             return this._createIcon('icon', t) | |||
|  |           }, | |||
|  |           createShadow: function(t) { | |||
|  |             return this._createIcon('shadow', t) | |||
|  |           }, | |||
|  |           _createIcon: function(t, e) { | |||
|  |             var i = this._getIconUrl(t) | |||
|  |             if (!i) { | |||
|  |               if ('icon' === t) | |||
|  |                 throw new Error( | |||
|  |                   'iconUrl not set in Icon options (see the docs).' | |||
|  |                 ) | |||
|  |               return null | |||
|  |             } | |||
|  |             var n | |||
|  |             return ( | |||
|  |               (n = | |||
|  |                 e && 'IMG' === e.tagName | |||
|  |                   ? this._createImg(i, e) | |||
|  |                   : this._createImg(i)), | |||
|  |               this._setIconStyles(n, t), | |||
|  |               n | |||
|  |             ) | |||
|  |           }, | |||
|  |           _setIconStyles: function(t, e) { | |||
|  |             var i, | |||
|  |               n = this.options, | |||
|  |               s = o.point(n[e + 'Size']) | |||
|  |             ;(i = | |||
|  |               'shadow' === e | |||
|  |                 ? o.point(n.shadowAnchor || n.iconAnchor) | |||
|  |                 : o.point(n.iconAnchor)), | |||
|  |               !i && s && (i = s.divideBy(2, !0)), | |||
|  |               (t.className = 'leaflet-marker-' + e + ' ' + n.className), | |||
|  |               i && | |||
|  |                 ((t.style.marginLeft = -i.x + 'px'), | |||
|  |                 (t.style.marginTop = -i.y + 'px')), | |||
|  |               s && ((t.style.width = s.x + 'px'), (t.style.height = s.y + 'px')) | |||
|  |           }, | |||
|  |           _createImg: function(t, i) { | |||
|  |             return (i = i || e.createElement('img')), (i.src = t), i | |||
|  |           }, | |||
|  |           _getIconUrl: function(t) { | |||
|  |             return o.Browser.retina && this.options[t + 'RetinaUrl'] | |||
|  |               ? this.options[t + 'RetinaUrl'] | |||
|  |               : this.options[t + 'Url'] | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.icon = function(t) { | |||
|  |           return new o.Icon(t) | |||
|  |         }), | |||
|  |         (o.Icon.Default = o.Icon.extend({ | |||
|  |           options: { | |||
|  |             iconSize: [25, 41], | |||
|  |             iconAnchor: [12, 41], | |||
|  |             popupAnchor: [1, -34], | |||
|  |             shadowSize: [41, 41] | |||
|  |           }, | |||
|  |           _getIconUrl: function(t) { | |||
|  |             var e = t + 'Url' | |||
|  |             if (this.options[e]) return this.options[e] | |||
|  |             o.Browser.retina && 'icon' === t && (t += '-2x') | |||
|  |             var i = o.Icon.Default.imagePath | |||
|  |             if (!i) | |||
|  |               throw new Error( | |||
|  |                 "Couldn't autodetect L.Icon.Default.imagePath, set it manually." | |||
|  |               ) | |||
|  |             return i + '/marker-' + t + '.png' | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.Icon.Default.imagePath = (function() { | |||
|  |           var t, | |||
|  |             i, | |||
|  |             n, | |||
|  |             o, | |||
|  |             s, | |||
|  |             a = e.getElementsByTagName('script'), | |||
|  |             r = /[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/ | |||
|  |           for (t = 0, i = a.length; i > t; t++) | |||
|  |             if (((n = a[t].src), (o = n.match(r)))) | |||
|  |               return (s = n.split(r)[0]), (s ? s + '/' : '') + 'images' | |||
|  |         })()), | |||
|  |         (o.Marker = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           options: { | |||
|  |             icon: new o.Icon.Default(), | |||
|  |             title: '', | |||
|  |             alt: '', | |||
|  |             clickable: !0, | |||
|  |             draggable: !1, | |||
|  |             keyboard: !0, | |||
|  |             zIndexOffset: 0, | |||
|  |             opacity: 1, | |||
|  |             riseOnHover: !1, | |||
|  |             riseOffset: 250 | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             o.setOptions(this, e), (this._latlng = o.latLng(t)) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               t.on('viewreset', this.update, this), | |||
|  |               this._initIcon(), | |||
|  |               this.update(), | |||
|  |               this.fire('add'), | |||
|  |               t.options.zoomAnimation && | |||
|  |                 t.options.markerZoomAnimation && | |||
|  |                 t.on('zoomanim', this._animateZoom, this) | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             this.dragging && this.dragging.disable(), | |||
|  |               this._removeIcon(), | |||
|  |               this._removeShadow(), | |||
|  |               this.fire('remove'), | |||
|  |               t.off( | |||
|  |                 { | |||
|  |                   viewreset: this.update, | |||
|  |                   zoomanim: this._animateZoom | |||
|  |                 }, | |||
|  |                 this | |||
|  |               ), | |||
|  |               (this._map = null) | |||
|  |           }, | |||
|  |           getLatLng: function() { | |||
|  |             return this._latlng | |||
|  |           }, | |||
|  |           setLatLng: function(t) { | |||
|  |             return ( | |||
|  |               (this._latlng = o.latLng(t)), | |||
|  |               this.update(), | |||
|  |               this.fire('move', { latlng: this._latlng }) | |||
|  |             ) | |||
|  |           }, | |||
|  |           setZIndexOffset: function(t) { | |||
|  |             return (this.options.zIndexOffset = t), this.update(), this | |||
|  |           }, | |||
|  |           setIcon: function(t) { | |||
|  |             return ( | |||
|  |               (this.options.icon = t), | |||
|  |               this._map && (this._initIcon(), this.update()), | |||
|  |               this._popup && this.bindPopup(this._popup), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           update: function() { | |||
|  |             return ( | |||
|  |               this._icon && | |||
|  |                 this._setPos( | |||
|  |                   this._map.latLngToLayerPoint(this._latlng).round() | |||
|  |                 ), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _initIcon: function() { | |||
|  |             var t = this.options, | |||
|  |               e = this._map, | |||
|  |               i = e.options.zoomAnimation && e.options.markerZoomAnimation, | |||
|  |               n = i ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide', | |||
|  |               s = t.icon.createIcon(this._icon), | |||
|  |               a = !1 | |||
|  |             s !== this._icon && | |||
|  |               (this._icon && this._removeIcon(), | |||
|  |               (a = !0), | |||
|  |               t.title && (s.title = t.title), | |||
|  |               t.alt && (s.alt = t.alt)), | |||
|  |               o.DomUtil.addClass(s, n), | |||
|  |               t.keyboard && (s.tabIndex = '0'), | |||
|  |               (this._icon = s), | |||
|  |               this._initInteraction(), | |||
|  |               t.riseOnHover && | |||
|  |                 o.DomEvent.on(s, 'mouseover', this._bringToFront, this).on( | |||
|  |                   s, | |||
|  |                   'mouseout', | |||
|  |                   this._resetZIndex, | |||
|  |                   this | |||
|  |                 ) | |||
|  |             var r = t.icon.createShadow(this._shadow), | |||
|  |               h = !1 | |||
|  |             r !== this._shadow && (this._removeShadow(), (h = !0)), | |||
|  |               r && o.DomUtil.addClass(r, n), | |||
|  |               (this._shadow = r), | |||
|  |               t.opacity < 1 && this._updateOpacity() | |||
|  |             var l = this._map._panes | |||
|  |             a && l.markerPane.appendChild(this._icon), | |||
|  |               r && h && l.shadowPane.appendChild(this._shadow) | |||
|  |           }, | |||
|  |           _removeIcon: function() { | |||
|  |             this.options.riseOnHover && | |||
|  |               o.DomEvent.off(this._icon, 'mouseover', this._bringToFront).off( | |||
|  |                 this._icon, | |||
|  |                 'mouseout', | |||
|  |                 this._resetZIndex | |||
|  |               ), | |||
|  |               this._map._panes.markerPane.removeChild(this._icon), | |||
|  |               (this._icon = null) | |||
|  |           }, | |||
|  |           _removeShadow: function() { | |||
|  |             this._shadow && | |||
|  |               this._map._panes.shadowPane.removeChild(this._shadow), | |||
|  |               (this._shadow = null) | |||
|  |           }, | |||
|  |           _setPos: function(t) { | |||
|  |             o.DomUtil.setPosition(this._icon, t), | |||
|  |               this._shadow && o.DomUtil.setPosition(this._shadow, t), | |||
|  |               (this._zIndex = t.y + this.options.zIndexOffset), | |||
|  |               this._resetZIndex() | |||
|  |           }, | |||
|  |           _updateZIndex: function(t) { | |||
|  |             this._icon.style.zIndex = this._zIndex + t | |||
|  |           }, | |||
|  |           _animateZoom: function(t) { | |||
|  |             var e = this._map | |||
|  |               ._latLngToNewLayerPoint(this._latlng, t.zoom, t.center) | |||
|  |               .round() | |||
|  |             this._setPos(e) | |||
|  |           }, | |||
|  |           _initInteraction: function() { | |||
|  |             if (this.options.clickable) { | |||
|  |               var t = this._icon, | |||
|  |                 e = [ | |||
|  |                   'dblclick', | |||
|  |                   'mousedown', | |||
|  |                   'mouseover', | |||
|  |                   'mouseout', | |||
|  |                   'contextmenu' | |||
|  |                 ] | |||
|  |               o.DomUtil.addClass(t, 'leaflet-clickable'), | |||
|  |                 o.DomEvent.on(t, 'click', this._onMouseClick, this), | |||
|  |                 o.DomEvent.on(t, 'keypress', this._onKeyPress, this) | |||
|  |               for (var i = 0; i < e.length; i++) | |||
|  |                 o.DomEvent.on(t, e[i], this._fireMouseEvent, this) | |||
|  |               o.Handler.MarkerDrag && | |||
|  |                 ((this.dragging = new o.Handler.MarkerDrag(this)), | |||
|  |                 this.options.draggable && this.dragging.enable()) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onMouseClick: function(t) { | |||
|  |             var e = this.dragging && this.dragging.moved() | |||
|  |             ;(this.hasEventListeners(t.type) || e) && | |||
|  |               o.DomEvent.stopPropagation(t), | |||
|  |               e || | |||
|  |                 (((this.dragging && this.dragging._enabled) || | |||
|  |                   !this._map.dragging || | |||
|  |                   !this._map.dragging.moved()) && | |||
|  |                   this.fire(t.type, { | |||
|  |                     originalEvent: t, | |||
|  |                     latlng: this._latlng | |||
|  |                   })) | |||
|  |           }, | |||
|  |           _onKeyPress: function(t) { | |||
|  |             13 === t.keyCode && | |||
|  |               this.fire('click', { originalEvent: t, latlng: this._latlng }) | |||
|  |           }, | |||
|  |           _fireMouseEvent: function(t) { | |||
|  |             this.fire(t.type, { | |||
|  |               originalEvent: t, | |||
|  |               latlng: this._latlng | |||
|  |             }), | |||
|  |               'contextmenu' === t.type && | |||
|  |                 this.hasEventListeners(t.type) && | |||
|  |                 o.DomEvent.preventDefault(t), | |||
|  |               'mousedown' !== t.type | |||
|  |                 ? o.DomEvent.stopPropagation(t) | |||
|  |                 : o.DomEvent.preventDefault(t) | |||
|  |           }, | |||
|  |           setOpacity: function(t) { | |||
|  |             return ( | |||
|  |               (this.options.opacity = t), | |||
|  |               this._map && this._updateOpacity(), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _updateOpacity: function() { | |||
|  |             o.DomUtil.setOpacity(this._icon, this.options.opacity), | |||
|  |               this._shadow && | |||
|  |                 o.DomUtil.setOpacity(this._shadow, this.options.opacity) | |||
|  |           }, | |||
|  |           _bringToFront: function() { | |||
|  |             this._updateZIndex(this.options.riseOffset) | |||
|  |           }, | |||
|  |           _resetZIndex: function() { | |||
|  |             this._updateZIndex(0) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.marker = function(t, e) { | |||
|  |           return new o.Marker(t, e) | |||
|  |         }), | |||
|  |         (o.DivIcon = o.Icon.extend({ | |||
|  |           options: { | |||
|  |             iconSize: [12, 12], | |||
|  |             className: 'leaflet-div-icon', | |||
|  |             html: !1 | |||
|  |           }, | |||
|  |           createIcon: function(t) { | |||
|  |             var i = t && 'DIV' === t.tagName ? t : e.createElement('div'), | |||
|  |               n = this.options | |||
|  |             return ( | |||
|  |               n.html !== !1 ? (i.innerHTML = n.html) : (i.innerHTML = ''), | |||
|  |               n.bgPos && | |||
|  |                 (i.style.backgroundPosition = | |||
|  |                   -n.bgPos.x + 'px ' + -n.bgPos.y + 'px'), | |||
|  |               this._setIconStyles(i, 'icon'), | |||
|  |               i | |||
|  |             ) | |||
|  |           }, | |||
|  |           createShadow: function() { | |||
|  |             return null | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.divIcon = function(t) { | |||
|  |           return new o.DivIcon(t) | |||
|  |         }), | |||
|  |         o.Map.mergeOptions({ closePopupOnClick: !0 }), | |||
|  |         (o.Popup = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           options: { | |||
|  |             minWidth: 50, | |||
|  |             maxWidth: 300, | |||
|  |             autoPan: !0, | |||
|  |             closeButton: !0, | |||
|  |             offset: [0, 7], | |||
|  |             autoPanPadding: [5, 5], | |||
|  |             keepInView: !1, | |||
|  |             className: '', | |||
|  |             zoomAnimation: !0 | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             o.setOptions(this, t), | |||
|  |               (this._source = e), | |||
|  |               (this._animated = o.Browser.any3d && this.options.zoomAnimation), | |||
|  |               (this._isOpen = !1) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), this._container || this._initLayout() | |||
|  |             var e = t.options.fadeAnimation | |||
|  |             e && o.DomUtil.setOpacity(this._container, 0), | |||
|  |               t._panes.popupPane.appendChild(this._container), | |||
|  |               t.on(this._getEvents(), this), | |||
|  |               this.update(), | |||
|  |               e && o.DomUtil.setOpacity(this._container, 1), | |||
|  |               this.fire('open'), | |||
|  |               t.fire('popupopen', { popup: this }), | |||
|  |               this._source && this._source.fire('popupopen', { popup: this }) | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           openOn: function(t) { | |||
|  |             return t.openPopup(this), this | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t._panes.popupPane.removeChild(this._container), | |||
|  |               o.Util.falseFn(this._container.offsetWidth), | |||
|  |               t.off(this._getEvents(), this), | |||
|  |               t.options.fadeAnimation && | |||
|  |                 o.DomUtil.setOpacity(this._container, 0), | |||
|  |               (this._map = null), | |||
|  |               this.fire('close'), | |||
|  |               t.fire('popupclose', { popup: this }), | |||
|  |               this._source && this._source.fire('popupclose', { popup: this }) | |||
|  |           }, | |||
|  |           getLatLng: function() { | |||
|  |             return this._latlng | |||
|  |           }, | |||
|  |           setLatLng: function(t) { | |||
|  |             return ( | |||
|  |               (this._latlng = o.latLng(t)), | |||
|  |               this._map && (this._updatePosition(), this._adjustPan()), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getContent: function() { | |||
|  |             return this._content | |||
|  |           }, | |||
|  |           setContent: function(t) { | |||
|  |             return (this._content = t), this.update(), this | |||
|  |           }, | |||
|  |           update: function() { | |||
|  |             this._map && | |||
|  |               ((this._container.style.visibility = 'hidden'), | |||
|  |               this._updateContent(), | |||
|  |               this._updateLayout(), | |||
|  |               this._updatePosition(), | |||
|  |               (this._container.style.visibility = ''), | |||
|  |               this._adjustPan()) | |||
|  |           }, | |||
|  |           _getEvents: function() { | |||
|  |             var t = { viewreset: this._updatePosition } | |||
|  |             return ( | |||
|  |               this._animated && (t.zoomanim = this._zoomAnimation), | |||
|  |               ('closeOnClick' in this.options | |||
|  |                 ? this.options.closeOnClick | |||
|  |                 : this._map.options.closePopupOnClick) && | |||
|  |                 (t.preclick = this._close), | |||
|  |               this.options.keepInView && (t.moveend = this._adjustPan), | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           _close: function() { | |||
|  |             this._map && this._map.closePopup(this) | |||
|  |           }, | |||
|  |           _initLayout: function() { | |||
|  |             var t, | |||
|  |               e = 'leaflet-popup', | |||
|  |               i = | |||
|  |                 e + | |||
|  |                 ' ' + | |||
|  |                 this.options.className + | |||
|  |                 ' leaflet-zoom-' + | |||
|  |                 (this._animated ? 'animated' : 'hide'), | |||
|  |               n = (this._container = o.DomUtil.create('div', i)) | |||
|  |             this.options.closeButton && | |||
|  |               ((t = this._closeButton = o.DomUtil.create( | |||
|  |                 'a', | |||
|  |                 e + '-close-button', | |||
|  |                 n | |||
|  |               )), | |||
|  |               (t.href = '#close'), | |||
|  |               (t.innerHTML = '×'), | |||
|  |               o.DomEvent.disableClickPropagation(t), | |||
|  |               o.DomEvent.on(t, 'click', this._onCloseButtonClick, this)) | |||
|  |             var s = (this._wrapper = o.DomUtil.create( | |||
|  |               'div', | |||
|  |               e + '-content-wrapper', | |||
|  |               n | |||
|  |             )) | |||
|  |             o.DomEvent.disableClickPropagation(s), | |||
|  |               (this._contentNode = o.DomUtil.create('div', e + '-content', s)), | |||
|  |               o.DomEvent.disableScrollPropagation(this._contentNode), | |||
|  |               o.DomEvent.on(s, 'contextmenu', o.DomEvent.stopPropagation), | |||
|  |               (this._tipContainer = o.DomUtil.create( | |||
|  |                 'div', | |||
|  |                 e + '-tip-container', | |||
|  |                 n | |||
|  |               )), | |||
|  |               (this._tip = o.DomUtil.create( | |||
|  |                 'div', | |||
|  |                 e + '-tip', | |||
|  |                 this._tipContainer | |||
|  |               )) | |||
|  |           }, | |||
|  |           _updateContent: function() { | |||
|  |             if (this._content) { | |||
|  |               if ('string' == typeof this._content) | |||
|  |                 this._contentNode.innerHTML = this._content | |||
|  |               else { | |||
|  |                 for (; this._contentNode.hasChildNodes(); ) | |||
|  |                   this._contentNode.removeChild(this._contentNode.firstChild) | |||
|  |                 this._contentNode.appendChild(this._content) | |||
|  |               } | |||
|  |               this.fire('contentupdate') | |||
|  |             } | |||
|  |           }, | |||
|  |           _updateLayout: function() { | |||
|  |             var t = this._contentNode, | |||
|  |               e = t.style | |||
|  |             ;(e.width = ''), (e.whiteSpace = 'nowrap') | |||
|  |             var i = t.offsetWidth | |||
|  |             ;(i = Math.min(i, this.options.maxWidth)), | |||
|  |               (i = Math.max(i, this.options.minWidth)), | |||
|  |               (e.width = i + 1 + 'px'), | |||
|  |               (e.whiteSpace = ''), | |||
|  |               (e.height = '') | |||
|  |             var n = t.offsetHeight, | |||
|  |               s = this.options.maxHeight, | |||
|  |               a = 'leaflet-popup-scrolled' | |||
|  |             s && n > s | |||
|  |               ? ((e.height = s + 'px'), o.DomUtil.addClass(t, a)) | |||
|  |               : o.DomUtil.removeClass(t, a), | |||
|  |               (this._containerWidth = this._container.offsetWidth) | |||
|  |           }, | |||
|  |           _updatePosition: function() { | |||
|  |             if (this._map) { | |||
|  |               var t = this._map.latLngToLayerPoint(this._latlng), | |||
|  |                 e = this._animated, | |||
|  |                 i = o.point(this.options.offset) | |||
|  |               e && o.DomUtil.setPosition(this._container, t), | |||
|  |                 (this._containerBottom = -i.y - (e ? 0 : t.y)), | |||
|  |                 (this._containerLeft = | |||
|  |                   -Math.round(this._containerWidth / 2) + i.x + (e ? 0 : t.x)), | |||
|  |                 (this._container.style.bottom = this._containerBottom + 'px'), | |||
|  |                 (this._container.style.left = this._containerLeft + 'px') | |||
|  |             } | |||
|  |           }, | |||
|  |           _zoomAnimation: function(t) { | |||
|  |             var e = this._map._latLngToNewLayerPoint( | |||
|  |               this._latlng, | |||
|  |               t.zoom, | |||
|  |               t.center | |||
|  |             ) | |||
|  |             o.DomUtil.setPosition(this._container, e) | |||
|  |           }, | |||
|  |           _adjustPan: function() { | |||
|  |             if (this.options.autoPan) { | |||
|  |               var t = this._map, | |||
|  |                 e = this._container.offsetHeight, | |||
|  |                 i = this._containerWidth, | |||
|  |                 n = new o.Point(this._containerLeft, -e - this._containerBottom) | |||
|  |               this._animated && n._add(o.DomUtil.getPosition(this._container)) | |||
|  |               var s = t.layerPointToContainerPoint(n), | |||
|  |                 a = o.point(this.options.autoPanPadding), | |||
|  |                 r = o.point(this.options.autoPanPaddingTopLeft || a), | |||
|  |                 h = o.point(this.options.autoPanPaddingBottomRight || a), | |||
|  |                 l = t.getSize(), | |||
|  |                 u = 0, | |||
|  |                 c = 0 | |||
|  |               s.x + i + h.x > l.x && (u = s.x + i - l.x + h.x), | |||
|  |                 s.x - u - r.x < 0 && (u = s.x - r.x), | |||
|  |                 s.y + e + h.y > l.y && (c = s.y + e - l.y + h.y), | |||
|  |                 s.y - c - r.y < 0 && (c = s.y - r.y), | |||
|  |                 (u || c) && t.fire('autopanstart').panBy([u, c]) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onCloseButtonClick: function(t) { | |||
|  |             this._close(), o.DomEvent.stop(t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.popup = function(t, e) { | |||
|  |           return new o.Popup(t, e) | |||
|  |         }), | |||
|  |         o.Map.include({ | |||
|  |           openPopup: function(t, e, i) { | |||
|  |             if ((this.closePopup(), !(t instanceof o.Popup))) { | |||
|  |               var n = t | |||
|  |               t = new o.Popup(i).setLatLng(e).setContent(n) | |||
|  |             } | |||
|  |             return (t._isOpen = !0), (this._popup = t), this.addLayer(t) | |||
|  |           }, | |||
|  |           closePopup: function(t) { | |||
|  |             return ( | |||
|  |               (t && t !== this._popup) || | |||
|  |                 ((t = this._popup), (this._popup = null)), | |||
|  |               t && (this.removeLayer(t), (t._isOpen = !1)), | |||
|  |               this | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         o.Marker.include({ | |||
|  |           openPopup: function() { | |||
|  |             return ( | |||
|  |               this._popup && | |||
|  |                 this._map && | |||
|  |                 !this._map.hasLayer(this._popup) && | |||
|  |                 (this._popup.setLatLng(this._latlng), | |||
|  |                 this._map.openPopup(this._popup)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           closePopup: function() { | |||
|  |             return this._popup && this._popup._close(), this | |||
|  |           }, | |||
|  |           togglePopup: function() { | |||
|  |             return ( | |||
|  |               this._popup && | |||
|  |                 (this._popup._isOpen ? this.closePopup() : this.openPopup()), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           bindPopup: function(t, e) { | |||
|  |             var i = o.point(this.options.icon.options.popupAnchor || [0, 0]) | |||
|  |             return ( | |||
|  |               (i = i.add(o.Popup.prototype.options.offset)), | |||
|  |               e && e.offset && (i = i.add(e.offset)), | |||
|  |               (e = o.extend({ offset: i }, e)), | |||
|  |               this._popupHandlersAdded || | |||
|  |                 (this.on('click', this.togglePopup, this) | |||
|  |                   .on('remove', this.closePopup, this) | |||
|  |                   .on('move', this._movePopup, this), | |||
|  |                 (this._popupHandlersAdded = !0)), | |||
|  |               t instanceof o.Popup | |||
|  |                 ? (o.setOptions(t, e), (this._popup = t), (t._source = this)) | |||
|  |                 : (this._popup = new o.Popup(e, this).setContent(t)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           setPopupContent: function(t) { | |||
|  |             return this._popup && this._popup.setContent(t), this | |||
|  |           }, | |||
|  |           unbindPopup: function() { | |||
|  |             return ( | |||
|  |               this._popup && | |||
|  |                 ((this._popup = null), | |||
|  |                 this.off('click', this.togglePopup, this) | |||
|  |                   .off('remove', this.closePopup, this) | |||
|  |                   .off('move', this._movePopup, this), | |||
|  |                 (this._popupHandlersAdded = !1)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getPopup: function() { | |||
|  |             return this._popup | |||
|  |           }, | |||
|  |           _movePopup: function(t) { | |||
|  |             this._popup.setLatLng(t.latlng) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.LayerGroup = o.Class.extend({ | |||
|  |           initialize: function(t) { | |||
|  |             this._layers = {} | |||
|  |             var e, i | |||
|  |             if (t) for (e = 0, i = t.length; i > e; e++) this.addLayer(t[e]) | |||
|  |           }, | |||
|  |           addLayer: function(t) { | |||
|  |             var e = this.getLayerId(t) | |||
|  |             return ( | |||
|  |               (this._layers[e] = t), this._map && this._map.addLayer(t), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeLayer: function(t) { | |||
|  |             var e = t in this._layers ? t : this.getLayerId(t) | |||
|  |             return ( | |||
|  |               this._map && | |||
|  |                 this._layers[e] && | |||
|  |                 this._map.removeLayer(this._layers[e]), | |||
|  |               delete this._layers[e], | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           hasLayer: function(t) { | |||
|  |             return t | |||
|  |               ? t in this._layers || this.getLayerId(t) in this._layers | |||
|  |               : !1 | |||
|  |           }, | |||
|  |           clearLayers: function() { | |||
|  |             return this.eachLayer(this.removeLayer, this), this | |||
|  |           }, | |||
|  |           invoke: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n = Array.prototype.slice.call(arguments, 1) | |||
|  |             for (e in this._layers) | |||
|  |               (i = this._layers[e]), i[t] && i[t].apply(i, n) | |||
|  |             return this | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), this.eachLayer(t.addLayer, t) | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             this.eachLayer(t.removeLayer, t), (this._map = null) | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           eachLayer: function(t, e) { | |||
|  |             for (var i in this._layers) t.call(e, this._layers[i]) | |||
|  |             return this | |||
|  |           }, | |||
|  |           getLayer: function(t) { | |||
|  |             return this._layers[t] | |||
|  |           }, | |||
|  |           getLayers: function() { | |||
|  |             var t = [] | |||
|  |             for (var e in this._layers) t.push(this._layers[e]) | |||
|  |             return t | |||
|  |           }, | |||
|  |           setZIndex: function(t) { | |||
|  |             return this.invoke('setZIndex', t) | |||
|  |           }, | |||
|  |           getLayerId: function(t) { | |||
|  |             return o.stamp(t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.layerGroup = function(t) { | |||
|  |           return new o.LayerGroup(t) | |||
|  |         }), | |||
|  |         (o.FeatureGroup = o.LayerGroup.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           statics: { | |||
|  |             EVENTS: | |||
|  |               'click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose' | |||
|  |           }, | |||
|  |           addLayer: function(t) { | |||
|  |             return this.hasLayer(t) | |||
|  |               ? this | |||
|  |               : ('on' in t && | |||
|  |                   t.on(o.FeatureGroup.EVENTS, this._propagateEvent, this), | |||
|  |                 o.LayerGroup.prototype.addLayer.call(this, t), | |||
|  |                 this._popupContent && | |||
|  |                   t.bindPopup && | |||
|  |                   t.bindPopup(this._popupContent, this._popupOptions), | |||
|  |                 this.fire('layeradd', { layer: t })) | |||
|  |           }, | |||
|  |           removeLayer: function(t) { | |||
|  |             return this.hasLayer(t) | |||
|  |               ? (t in this._layers && (t = this._layers[t]), | |||
|  |                 'off' in t && | |||
|  |                   t.off(o.FeatureGroup.EVENTS, this._propagateEvent, this), | |||
|  |                 o.LayerGroup.prototype.removeLayer.call(this, t), | |||
|  |                 this._popupContent && this.invoke('unbindPopup'), | |||
|  |                 this.fire('layerremove', { layer: t })) | |||
|  |               : this | |||
|  |           }, | |||
|  |           bindPopup: function(t, e) { | |||
|  |             return ( | |||
|  |               (this._popupContent = t), | |||
|  |               (this._popupOptions = e), | |||
|  |               this.invoke('bindPopup', t, e) | |||
|  |             ) | |||
|  |           }, | |||
|  |           openPopup: function(t) { | |||
|  |             for (var e in this._layers) { | |||
|  |               this._layers[e].openPopup(t) | |||
|  |               break | |||
|  |             } | |||
|  |             return this | |||
|  |           }, | |||
|  |           setStyle: function(t) { | |||
|  |             return this.invoke('setStyle', t) | |||
|  |           }, | |||
|  |           bringToFront: function() { | |||
|  |             return this.invoke('bringToFront') | |||
|  |           }, | |||
|  |           bringToBack: function() { | |||
|  |             return this.invoke('bringToBack') | |||
|  |           }, | |||
|  |           getBounds: function() { | |||
|  |             var t = new o.LatLngBounds() | |||
|  |             return ( | |||
|  |               this.eachLayer(function(e) { | |||
|  |                 t.extend(e instanceof o.Marker ? e.getLatLng() : e.getBounds()) | |||
|  |               }), | |||
|  |               t | |||
|  |             ) | |||
|  |           }, | |||
|  |           _propagateEvent: function(t) { | |||
|  |             ;(t = o.extend({ layer: t.target, target: this }, t)), | |||
|  |               this.fire(t.type, t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.featureGroup = function(t) { | |||
|  |           return new o.FeatureGroup(t) | |||
|  |         }), | |||
|  |         (o.Path = o.Class.extend({ | |||
|  |           includes: [o.Mixin.Events], | |||
|  |           statics: { | |||
|  |             CLIP_PADDING: (function() { | |||
|  |               var e = o.Browser.mobile ? 1280 : 2e3, | |||
|  |                 i = (e / Math.max(t.outerWidth, t.outerHeight) - 1) / 2 | |||
|  |               return Math.max(0, Math.min(0.5, i)) | |||
|  |             })() | |||
|  |           }, | |||
|  |           options: { | |||
|  |             stroke: !0, | |||
|  |             color: '#0033ff', | |||
|  |             dashArray: null, | |||
|  |             lineCap: null, | |||
|  |             lineJoin: null, | |||
|  |             weight: 5, | |||
|  |             opacity: 0.5, | |||
|  |             fill: !1, | |||
|  |             fillColor: null, | |||
|  |             fillOpacity: 0.2, | |||
|  |             clickable: !0 | |||
|  |           }, | |||
|  |           initialize: function(t) { | |||
|  |             o.setOptions(this, t) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               this._container || (this._initElements(), this._initEvents()), | |||
|  |               this.projectLatlngs(), | |||
|  |               this._updatePath(), | |||
|  |               this._container && | |||
|  |                 this._map._pathRoot.appendChild(this._container), | |||
|  |               this.fire('add'), | |||
|  |               t.on( | |||
|  |                 { | |||
|  |                   viewreset: this.projectLatlngs, | |||
|  |                   moveend: this._updatePath | |||
|  |                 }, | |||
|  |                 this | |||
|  |               ) | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             return t.addLayer(this), this | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t._pathRoot.removeChild(this._container), | |||
|  |               this.fire('remove'), | |||
|  |               (this._map = null), | |||
|  |               o.Browser.vml && | |||
|  |                 ((this._container = null), | |||
|  |                 (this._stroke = null), | |||
|  |                 (this._fill = null)), | |||
|  |               t.off( | |||
|  |                 { | |||
|  |                   viewreset: this.projectLatlngs, | |||
|  |                   moveend: this._updatePath | |||
|  |                 }, | |||
|  |                 this | |||
|  |               ) | |||
|  |           }, | |||
|  |           projectLatlngs: function() {}, | |||
|  |           setStyle: function(t) { | |||
|  |             return ( | |||
|  |               o.setOptions(this, t), | |||
|  |               this._container && this._updateStyle(), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           redraw: function() { | |||
|  |             return ( | |||
|  |               this._map && (this.projectLatlngs(), this._updatePath()), this | |||
|  |             ) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.include({ | |||
|  |           _updatePathViewport: function() { | |||
|  |             var t = o.Path.CLIP_PADDING, | |||
|  |               e = this.getSize(), | |||
|  |               i = o.DomUtil.getPosition(this._mapPane), | |||
|  |               n = i.multiplyBy(-1)._subtract(e.multiplyBy(t)._round()), | |||
|  |               s = n.add(e.multiplyBy(1 + 2 * t)._round()) | |||
|  |             this._pathViewport = new o.Bounds(n, s) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Path.SVG_NS = 'http://www.w3.org/2000/svg'), | |||
|  |         (o.Browser.svg = !( | |||
|  |           !e.createElementNS || | |||
|  |           !e.createElementNS(o.Path.SVG_NS, 'svg').createSVGRect | |||
|  |         )), | |||
|  |         (o.Path = o.Path.extend({ | |||
|  |           statics: { SVG: o.Browser.svg }, | |||
|  |           bringToFront: function() { | |||
|  |             var t = this._map._pathRoot, | |||
|  |               e = this._container | |||
|  |             return e && t.lastChild !== e && t.appendChild(e), this | |||
|  |           }, | |||
|  |           bringToBack: function() { | |||
|  |             var t = this._map._pathRoot, | |||
|  |               e = this._container, | |||
|  |               i = t.firstChild | |||
|  |             return e && i !== e && t.insertBefore(e, i), this | |||
|  |           }, | |||
|  |           getPathString: function() {}, | |||
|  |           _createElement: function(t) { | |||
|  |             return e.createElementNS(o.Path.SVG_NS, t) | |||
|  |           }, | |||
|  |           _initElements: function() { | |||
|  |             this._map._initPathRoot(), this._initPath(), this._initStyle() | |||
|  |           }, | |||
|  |           _initPath: function() { | |||
|  |             ;(this._container = this._createElement('g')), | |||
|  |               (this._path = this._createElement('path')), | |||
|  |               this.options.className && | |||
|  |                 o.DomUtil.addClass(this._path, this.options.className), | |||
|  |               this._container.appendChild(this._path) | |||
|  |           }, | |||
|  |           _initStyle: function() { | |||
|  |             this.options.stroke && | |||
|  |               (this._path.setAttribute('stroke-linejoin', 'round'), | |||
|  |               this._path.setAttribute('stroke-linecap', 'round')), | |||
|  |               this.options.fill && | |||
|  |                 this._path.setAttribute('fill-rule', 'evenodd'), | |||
|  |               this.options.pointerEvents && | |||
|  |                 this._path.setAttribute( | |||
|  |                   'pointer-events', | |||
|  |                   this.options.pointerEvents | |||
|  |                 ), | |||
|  |               this.options.clickable || | |||
|  |                 this.options.pointerEvents || | |||
|  |                 this._path.setAttribute('pointer-events', 'none'), | |||
|  |               this._updateStyle() | |||
|  |           }, | |||
|  |           _updateStyle: function() { | |||
|  |             this.options.stroke | |||
|  |               ? (this._path.setAttribute('stroke', this.options.color), | |||
|  |                 this._path.setAttribute('stroke-opacity', this.options.opacity), | |||
|  |                 this._path.setAttribute('stroke-width', this.options.weight), | |||
|  |                 this.options.dashArray | |||
|  |                   ? this._path.setAttribute( | |||
|  |                       'stroke-dasharray', | |||
|  |                       this.options.dashArray | |||
|  |                     ) | |||
|  |                   : this._path.removeAttribute('stroke-dasharray'), | |||
|  |                 this.options.lineCap && | |||
|  |                   this._path.setAttribute( | |||
|  |                     'stroke-linecap', | |||
|  |                     this.options.lineCap | |||
|  |                   ), | |||
|  |                 this.options.lineJoin && | |||
|  |                   this._path.setAttribute( | |||
|  |                     'stroke-linejoin', | |||
|  |                     this.options.lineJoin | |||
|  |                   )) | |||
|  |               : this._path.setAttribute('stroke', 'none'), | |||
|  |               this.options.fill | |||
|  |                 ? (this._path.setAttribute( | |||
|  |                     'fill', | |||
|  |                     this.options.fillColor || this.options.color | |||
|  |                   ), | |||
|  |                   this._path.setAttribute( | |||
|  |                     'fill-opacity', | |||
|  |                     this.options.fillOpacity | |||
|  |                   )) | |||
|  |                 : this._path.setAttribute('fill', 'none') | |||
|  |           }, | |||
|  |           _updatePath: function() { | |||
|  |             var t = this.getPathString() | |||
|  |             t || (t = 'M0 0'), this._path.setAttribute('d', t) | |||
|  |           }, | |||
|  |           _initEvents: function() { | |||
|  |             if (this.options.clickable) { | |||
|  |               ;(o.Browser.svg || !o.Browser.vml) && | |||
|  |                 o.DomUtil.addClass(this._path, 'leaflet-clickable'), | |||
|  |                 o.DomEvent.on( | |||
|  |                   this._container, | |||
|  |                   'click', | |||
|  |                   this._onMouseClick, | |||
|  |                   this | |||
|  |                 ) | |||
|  |               for ( | |||
|  |                 var t = [ | |||
|  |                     'dblclick', | |||
|  |                     'mousedown', | |||
|  |                     'mouseover', | |||
|  |                     'mouseout', | |||
|  |                     'mousemove', | |||
|  |                     'contextmenu' | |||
|  |                   ], | |||
|  |                   e = 0; | |||
|  |                 e < t.length; | |||
|  |                 e++ | |||
|  |               ) | |||
|  |                 o.DomEvent.on(this._container, t[e], this._fireMouseEvent, this) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onMouseClick: function(t) { | |||
|  |             ;(this._map.dragging && this._map.dragging.moved()) || | |||
|  |               this._fireMouseEvent(t) | |||
|  |           }, | |||
|  |           _fireMouseEvent: function(t) { | |||
|  |             if (this._map && this.hasEventListeners(t.type)) { | |||
|  |               var e = this._map, | |||
|  |                 i = e.mouseEventToContainerPoint(t), | |||
|  |                 n = e.containerPointToLayerPoint(i), | |||
|  |                 s = e.layerPointToLatLng(n) | |||
|  |               this.fire(t.type, { | |||
|  |                 latlng: s, | |||
|  |                 layerPoint: n, | |||
|  |                 containerPoint: i, | |||
|  |                 originalEvent: t | |||
|  |               }), | |||
|  |                 'contextmenu' === t.type && o.DomEvent.preventDefault(t), | |||
|  |                 'mousemove' !== t.type && o.DomEvent.stopPropagation(t) | |||
|  |             } | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.include({ | |||
|  |           _initPathRoot: function() { | |||
|  |             this._pathRoot || | |||
|  |               ((this._pathRoot = o.Path.prototype._createElement('svg')), | |||
|  |               this._panes.overlayPane.appendChild(this._pathRoot), | |||
|  |               this.options.zoomAnimation && o.Browser.any3d | |||
|  |                 ? (o.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-animated'), | |||
|  |                   this.on({ | |||
|  |                     zoomanim: this._animatePathZoom, | |||
|  |                     zoomend: this._endPathZoom | |||
|  |                   })) | |||
|  |                 : o.DomUtil.addClass(this._pathRoot, 'leaflet-zoom-hide'), | |||
|  |               this.on('moveend', this._updateSvgViewport), | |||
|  |               this._updateSvgViewport()) | |||
|  |           }, | |||
|  |           _animatePathZoom: function(t) { | |||
|  |             var e = this.getZoomScale(t.zoom), | |||
|  |               i = this._getCenterOffset(t.center) | |||
|  |                 ._multiplyBy(-e) | |||
|  |                 ._add(this._pathViewport.min) | |||
|  |             ;(this._pathRoot.style[o.DomUtil.TRANSFORM] = | |||
|  |               o.DomUtil.getTranslateString(i) + ' scale(' + e + ') '), | |||
|  |               (this._pathZooming = !0) | |||
|  |           }, | |||
|  |           _endPathZoom: function() { | |||
|  |             this._pathZooming = !1 | |||
|  |           }, | |||
|  |           _updateSvgViewport: function() { | |||
|  |             if (!this._pathZooming) { | |||
|  |               this._updatePathViewport() | |||
|  |               var t = this._pathViewport, | |||
|  |                 e = t.min, | |||
|  |                 i = t.max, | |||
|  |                 n = i.x - e.x, | |||
|  |                 s = i.y - e.y, | |||
|  |                 a = this._pathRoot, | |||
|  |                 r = this._panes.overlayPane | |||
|  |               o.Browser.mobileWebkit && r.removeChild(a), | |||
|  |                 o.DomUtil.setPosition(a, e), | |||
|  |                 a.setAttribute('width', n), | |||
|  |                 a.setAttribute('height', s), | |||
|  |                 a.setAttribute('viewBox', [e.x, e.y, n, s].join(' ')), | |||
|  |                 o.Browser.mobileWebkit && r.appendChild(a) | |||
|  |             } | |||
|  |           } | |||
|  |         }), | |||
|  |         o.Path.include({ | |||
|  |           bindPopup: function(t, e) { | |||
|  |             return ( | |||
|  |               t instanceof o.Popup | |||
|  |                 ? (this._popup = t) | |||
|  |                 : ((!this._popup || e) && (this._popup = new o.Popup(e, this)), | |||
|  |                   this._popup.setContent(t)), | |||
|  |               this._popupHandlersAdded || | |||
|  |                 (this.on('click', this._openPopup, this).on( | |||
|  |                   'remove', | |||
|  |                   this.closePopup, | |||
|  |                   this | |||
|  |                 ), | |||
|  |                 (this._popupHandlersAdded = !0)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           unbindPopup: function() { | |||
|  |             return ( | |||
|  |               this._popup && | |||
|  |                 ((this._popup = null), | |||
|  |                 this.off('click', this._openPopup).off( | |||
|  |                   'remove', | |||
|  |                   this.closePopup | |||
|  |                 ), | |||
|  |                 (this._popupHandlersAdded = !1)), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           openPopup: function(t) { | |||
|  |             return ( | |||
|  |               this._popup && | |||
|  |                 ((t = | |||
|  |                   t || | |||
|  |                   this._latlng || | |||
|  |                   this._latlngs[Math.floor(this._latlngs.length / 2)]), | |||
|  |                 this._openPopup({ latlng: t })), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           closePopup: function() { | |||
|  |             return this._popup && this._popup._close(), this | |||
|  |           }, | |||
|  |           _openPopup: function(t) { | |||
|  |             this._popup.setLatLng(t.latlng), this._map.openPopup(this._popup) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Browser.vml = | |||
|  |           !o.Browser.svg && | |||
|  |           (function() { | |||
|  |             try { | |||
|  |               var t = e.createElement('div') | |||
|  |               t.innerHTML = '<v:shape adj="1"/>' | |||
|  |               var i = t.firstChild | |||
|  |               return ( | |||
|  |                 (i.style.behavior = 'url(#default#VML)'), | |||
|  |                 i && 'object' == typeof i.adj | |||
|  |               ) | |||
|  |             } catch (n) { | |||
|  |               return !1 | |||
|  |             } | |||
|  |           })()), | |||
|  |         (o.Path = | |||
|  |           o.Browser.svg || !o.Browser.vml | |||
|  |             ? o.Path | |||
|  |             : o.Path.extend({ | |||
|  |                 statics: { VML: !0, CLIP_PADDING: 0.02 }, | |||
|  |                 _createElement: (function() { | |||
|  |                   try { | |||
|  |                     return ( | |||
|  |                       e.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'), | |||
|  |                       function(t) { | |||
|  |                         return e.createElement('<lvml:' + t + ' class="lvml">') | |||
|  |                       } | |||
|  |                     ) | |||
|  |                   } catch (t) { | |||
|  |                     return function(t) { | |||
|  |                       return e.createElement( | |||
|  |                         '<' + | |||
|  |                           t + | |||
|  |                           ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">' | |||
|  |                       ) | |||
|  |                     } | |||
|  |                   } | |||
|  |                 })(), | |||
|  |                 _initPath: function() { | |||
|  |                   var t = (this._container = this._createElement('shape')) | |||
|  |                   o.DomUtil.addClass( | |||
|  |                     t, | |||
|  |                     'leaflet-vml-shape' + | |||
|  |                       (this.options.className | |||
|  |                         ? ' ' + this.options.className | |||
|  |                         : '') | |||
|  |                   ), | |||
|  |                     this.options.clickable && | |||
|  |                       o.DomUtil.addClass(t, 'leaflet-clickable'), | |||
|  |                     (t.coordsize = '1 1'), | |||
|  |                     (this._path = this._createElement('path')), | |||
|  |                     t.appendChild(this._path), | |||
|  |                     this._map._pathRoot.appendChild(t) | |||
|  |                 }, | |||
|  |                 _initStyle: function() { | |||
|  |                   this._updateStyle() | |||
|  |                 }, | |||
|  |                 _updateStyle: function() { | |||
|  |                   var t = this._stroke, | |||
|  |                     e = this._fill, | |||
|  |                     i = this.options, | |||
|  |                     n = this._container | |||
|  |                   ;(n.stroked = i.stroke), | |||
|  |                     (n.filled = i.fill), | |||
|  |                     i.stroke | |||
|  |                       ? (t || | |||
|  |                           ((t = this._stroke = this._createElement('stroke')), | |||
|  |                           (t.endcap = 'round'), | |||
|  |                           n.appendChild(t)), | |||
|  |                         (t.weight = i.weight + 'px'), | |||
|  |                         (t.color = i.color), | |||
|  |                         (t.opacity = i.opacity), | |||
|  |                         i.dashArray | |||
|  |                           ? (t.dashStyle = o.Util.isArray(i.dashArray) | |||
|  |                               ? i.dashArray.join(' ') | |||
|  |                               : i.dashArray.replace(/( *, *)/g, ' ')) | |||
|  |                           : (t.dashStyle = ''), | |||
|  |                         i.lineCap && | |||
|  |                           (t.endcap = i.lineCap.replace('butt', 'flat')), | |||
|  |                         i.lineJoin && (t.joinstyle = i.lineJoin)) | |||
|  |                       : t && (n.removeChild(t), (this._stroke = null)), | |||
|  |                     i.fill | |||
|  |                       ? (e || | |||
|  |                           ((e = this._fill = this._createElement('fill')), | |||
|  |                           n.appendChild(e)), | |||
|  |                         (e.color = i.fillColor || i.color), | |||
|  |                         (e.opacity = i.fillOpacity)) | |||
|  |                       : e && (n.removeChild(e), (this._fill = null)) | |||
|  |                 }, | |||
|  |                 _updatePath: function() { | |||
|  |                   var t = this._container.style | |||
|  |                   ;(t.display = 'none'), | |||
|  |                     (this._path.v = this.getPathString() + ' '), | |||
|  |                     (t.display = '') | |||
|  |                 } | |||
|  |               })), | |||
|  |         o.Map.include( | |||
|  |           o.Browser.svg || !o.Browser.vml | |||
|  |             ? {} | |||
|  |             : { | |||
|  |                 _initPathRoot: function() { | |||
|  |                   if (!this._pathRoot) { | |||
|  |                     var t = (this._pathRoot = e.createElement('div')) | |||
|  |                     ;(t.className = 'leaflet-vml-container'), | |||
|  |                       this._panes.overlayPane.appendChild(t), | |||
|  |                       this.on('moveend', this._updatePathViewport), | |||
|  |                       this._updatePathViewport() | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |         ), | |||
|  |         (o.Browser.canvas = (function() { | |||
|  |           return !!e.createElement('canvas').getContext | |||
|  |         })()), | |||
|  |         (o.Path = | |||
|  |           (o.Path.SVG && !t.L_PREFER_CANVAS) || !o.Browser.canvas | |||
|  |             ? o.Path | |||
|  |             : o.Path.extend({ | |||
|  |                 statics: { | |||
|  |                   CANVAS: !0, | |||
|  |                   SVG: !1 | |||
|  |                 }, | |||
|  |                 redraw: function() { | |||
|  |                   return ( | |||
|  |                     this._map && (this.projectLatlngs(), this._requestUpdate()), | |||
|  |                     this | |||
|  |                   ) | |||
|  |                 }, | |||
|  |                 setStyle: function(t) { | |||
|  |                   return ( | |||
|  |                     o.setOptions(this, t), | |||
|  |                     this._map && (this._updateStyle(), this._requestUpdate()), | |||
|  |                     this | |||
|  |                   ) | |||
|  |                 }, | |||
|  |                 onRemove: function(t) { | |||
|  |                   t | |||
|  |                     .off('viewreset', this.projectLatlngs, this) | |||
|  |                     .off('moveend', this._updatePath, this), | |||
|  |                     this.options.clickable && | |||
|  |                       (this._map.off('click', this._onClick, this), | |||
|  |                       this._map.off('mousemove', this._onMouseMove, this)), | |||
|  |                     this._requestUpdate(), | |||
|  |                     this.fire('remove'), | |||
|  |                     (this._map = null) | |||
|  |                 }, | |||
|  |                 _requestUpdate: function() { | |||
|  |                   this._map && | |||
|  |                     !o.Path._updateRequest && | |||
|  |                     (o.Path._updateRequest = o.Util.requestAnimFrame( | |||
|  |                       this._fireMapMoveEnd, | |||
|  |                       this._map | |||
|  |                     )) | |||
|  |                 }, | |||
|  |                 _fireMapMoveEnd: function() { | |||
|  |                   ;(o.Path._updateRequest = null), this.fire('moveend') | |||
|  |                 }, | |||
|  |                 _initElements: function() { | |||
|  |                   this._map._initPathRoot(), (this._ctx = this._map._canvasCtx) | |||
|  |                 }, | |||
|  |                 _updateStyle: function() { | |||
|  |                   var t = this.options | |||
|  |                   t.stroke && | |||
|  |                     ((this._ctx.lineWidth = t.weight), | |||
|  |                     (this._ctx.strokeStyle = t.color)), | |||
|  |                     t.fill && (this._ctx.fillStyle = t.fillColor || t.color), | |||
|  |                     t.lineCap && (this._ctx.lineCap = t.lineCap), | |||
|  |                     t.lineJoin && (this._ctx.lineJoin = t.lineJoin) | |||
|  |                 }, | |||
|  |                 _drawPath: function() { | |||
|  |                   var t, e, i, n, s, a | |||
|  |                   for ( | |||
|  |                     this._ctx.beginPath(), t = 0, i = this._parts.length; | |||
|  |                     i > t; | |||
|  |                     t++ | |||
|  |                   ) { | |||
|  |                     for (e = 0, n = this._parts[t].length; n > e; e++) | |||
|  |                       (s = this._parts[t][e]), | |||
|  |                         (a = (0 === e ? 'move' : 'line') + 'To'), | |||
|  |                         this._ctx[a](s.x, s.y) | |||
|  |                     this instanceof o.Polygon && this._ctx.closePath() | |||
|  |                   } | |||
|  |                 }, | |||
|  |                 _checkIfEmpty: function() { | |||
|  |                   return !this._parts.length | |||
|  |                 }, | |||
|  |                 _updatePath: function() { | |||
|  |                   if (!this._checkIfEmpty()) { | |||
|  |                     var t = this._ctx, | |||
|  |                       e = this.options | |||
|  |                     this._drawPath(), | |||
|  |                       t.save(), | |||
|  |                       this._updateStyle(), | |||
|  |                       e.fill && | |||
|  |                         ((t.globalAlpha = e.fillOpacity), | |||
|  |                         t.fill(e.fillRule || 'evenodd')), | |||
|  |                       e.stroke && ((t.globalAlpha = e.opacity), t.stroke()), | |||
|  |                       t.restore() | |||
|  |                   } | |||
|  |                 }, | |||
|  |                 _initEvents: function() { | |||
|  |                   this.options.clickable && | |||
|  |                     (this._map.on('mousemove', this._onMouseMove, this), | |||
|  |                     this._map.on( | |||
|  |                       'click dblclick contextmenu', | |||
|  |                       this._fireMouseEvent, | |||
|  |                       this | |||
|  |                     )) | |||
|  |                 }, | |||
|  |                 _fireMouseEvent: function(t) { | |||
|  |                   this._containsPoint(t.layerPoint) && this.fire(t.type, t) | |||
|  |                 }, | |||
|  |                 _onMouseMove: function(t) { | |||
|  |                   this._map && | |||
|  |                     !this._map._animatingZoom && | |||
|  |                     (this._containsPoint(t.layerPoint) | |||
|  |                       ? ((this._ctx.canvas.style.cursor = 'pointer'), | |||
|  |                         (this._mouseInside = !0), | |||
|  |                         this.fire('mouseover', t)) | |||
|  |                       : this._mouseInside && | |||
|  |                         ((this._ctx.canvas.style.cursor = ''), | |||
|  |                         (this._mouseInside = !1), | |||
|  |                         this.fire('mouseout', t))) | |||
|  |                 } | |||
|  |               })), | |||
|  |         o.Map.include( | |||
|  |           (o.Path.SVG && !t.L_PREFER_CANVAS) || !o.Browser.canvas | |||
|  |             ? {} | |||
|  |             : { | |||
|  |                 _initPathRoot: function() { | |||
|  |                   var t, | |||
|  |                     i = this._pathRoot | |||
|  |                   i || | |||
|  |                     ((i = this._pathRoot = e.createElement('canvas')), | |||
|  |                     (i.style.position = 'absolute'), | |||
|  |                     (t = this._canvasCtx = i.getContext('2d')), | |||
|  |                     (t.lineCap = 'round'), | |||
|  |                     (t.lineJoin = 'round'), | |||
|  |                     this._panes.overlayPane.appendChild(i), | |||
|  |                     this.options.zoomAnimation && | |||
|  |                       ((this._pathRoot.className = 'leaflet-zoom-animated'), | |||
|  |                       this.on('zoomanim', this._animatePathZoom), | |||
|  |                       this.on('zoomend', this._endPathZoom)), | |||
|  |                     this.on('moveend', this._updateCanvasViewport), | |||
|  |                     this._updateCanvasViewport()) | |||
|  |                 }, | |||
|  |                 _updateCanvasViewport: function() { | |||
|  |                   if (!this._pathZooming) { | |||
|  |                     this._updatePathViewport() | |||
|  |                     var t = this._pathViewport, | |||
|  |                       e = t.min, | |||
|  |                       i = t.max.subtract(e), | |||
|  |                       n = this._pathRoot | |||
|  |                     o.DomUtil.setPosition(n, e), | |||
|  |                       (n.width = i.x), | |||
|  |                       (n.height = i.y), | |||
|  |                       n.getContext('2d').translate(-e.x, -e.y) | |||
|  |                   } | |||
|  |                 } | |||
|  |               } | |||
|  |         ), | |||
|  |         (o.LineUtil = { | |||
|  |           simplify: function(t, e) { | |||
|  |             if (!e || !t.length) return t.slice() | |||
|  |             var i = e * e | |||
|  |             return (t = this._reducePoints(t, i)), (t = this._simplifyDP(t, i)) | |||
|  |           }, | |||
|  |           pointToSegmentDistance: function(t, e, i) { | |||
|  |             return Math.sqrt(this._sqClosestPointOnSegment(t, e, i, !0)) | |||
|  |           }, | |||
|  |           closestPointOnSegment: function(t, e, i) { | |||
|  |             return this._sqClosestPointOnSegment(t, e, i) | |||
|  |           }, | |||
|  |           _simplifyDP: function(t, e) { | |||
|  |             var n = t.length, | |||
|  |               o = typeof Uint8Array != i + '' ? Uint8Array : Array, | |||
|  |               s = new o(n) | |||
|  |             ;(s[0] = s[n - 1] = 1), this._simplifyDPStep(t, s, e, 0, n - 1) | |||
|  |             var a, | |||
|  |               r = [] | |||
|  |             for (a = 0; n > a; a++) s[a] && r.push(t[a]) | |||
|  |             return r | |||
|  |           }, | |||
|  |           _simplifyDPStep: function(t, e, i, n, o) { | |||
|  |             var s, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h = 0 | |||
|  |             for (a = n + 1; o - 1 >= a; a++) | |||
|  |               (r = this._sqClosestPointOnSegment(t[a], t[n], t[o], !0)), | |||
|  |                 r > h && ((s = a), (h = r)) | |||
|  |             h > i && | |||
|  |               ((e[s] = 1), | |||
|  |               this._simplifyDPStep(t, e, i, n, s), | |||
|  |               this._simplifyDPStep(t, e, i, s, o)) | |||
|  |           }, | |||
|  |           _reducePoints: function(t, e) { | |||
|  |             for (var i = [t[0]], n = 1, o = 0, s = t.length; s > n; n++) | |||
|  |               this._sqDist(t[n], t[o]) > e && (i.push(t[n]), (o = n)) | |||
|  |             return s - 1 > o && i.push(t[s - 1]), i | |||
|  |           }, | |||
|  |           clipSegment: function(t, e, i, n) { | |||
|  |             var o, | |||
|  |               s, | |||
|  |               a, | |||
|  |               r = n ? this._lastCode : this._getBitCode(t, i), | |||
|  |               h = this._getBitCode(e, i) | |||
|  |             for (this._lastCode = h; ; ) { | |||
|  |               if (!(r | h)) return [t, e] | |||
|  |               if (r & h) return !1 | |||
|  |               ;(o = r || h), | |||
|  |                 (s = this._getEdgeIntersection(t, e, o, i)), | |||
|  |                 (a = this._getBitCode(s, i)), | |||
|  |                 o === r ? ((t = s), (r = a)) : ((e = s), (h = a)) | |||
|  |             } | |||
|  |           }, | |||
|  |           _getEdgeIntersection: function(t, e, i, n) { | |||
|  |             var s = e.x - t.x, | |||
|  |               a = e.y - t.y, | |||
|  |               r = n.min, | |||
|  |               h = n.max | |||
|  |             return 8 & i | |||
|  |               ? new o.Point(t.x + (s * (h.y - t.y)) / a, h.y) | |||
|  |               : 4 & i | |||
|  |               ? new o.Point(t.x + (s * (r.y - t.y)) / a, r.y) | |||
|  |               : 2 & i | |||
|  |               ? new o.Point(h.x, t.y + (a * (h.x - t.x)) / s) | |||
|  |               : 1 & i | |||
|  |               ? new o.Point(r.x, t.y + (a * (r.x - t.x)) / s) | |||
|  |               : void 0 | |||
|  |           }, | |||
|  |           _getBitCode: function(t, e) { | |||
|  |             var i = 0 | |||
|  |             return ( | |||
|  |               t.x < e.min.x ? (i |= 1) : t.x > e.max.x && (i |= 2), | |||
|  |               t.y < e.min.y ? (i |= 4) : t.y > e.max.y && (i |= 8), | |||
|  |               i | |||
|  |             ) | |||
|  |           }, | |||
|  |           _sqDist: function(t, e) { | |||
|  |             var i = e.x - t.x, | |||
|  |               n = e.y - t.y | |||
|  |             return i * i + n * n | |||
|  |           }, | |||
|  |           _sqClosestPointOnSegment: function(t, e, i, n) { | |||
|  |             var s, | |||
|  |               a = e.x, | |||
|  |               r = e.y, | |||
|  |               h = i.x - a, | |||
|  |               l = i.y - r, | |||
|  |               u = h * h + l * l | |||
|  |             return ( | |||
|  |               u > 0 && | |||
|  |                 ((s = ((t.x - a) * h + (t.y - r) * l) / u), | |||
|  |                 s > 1 | |||
|  |                   ? ((a = i.x), (r = i.y)) | |||
|  |                   : s > 0 && ((a += h * s), (r += l * s))), | |||
|  |               (h = t.x - a), | |||
|  |               (l = t.y - r), | |||
|  |               n ? h * h + l * l : new o.Point(a, r) | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Polyline = o.Path.extend({ | |||
|  |           initialize: function(t, e) { | |||
|  |             o.Path.prototype.initialize.call(this, e), | |||
|  |               (this._latlngs = this._convertLatLngs(t)) | |||
|  |           }, | |||
|  |           options: { smoothFactor: 1, noClip: !1 }, | |||
|  |           projectLatlngs: function() { | |||
|  |             this._originalPoints = [] | |||
|  |             for (var t = 0, e = this._latlngs.length; e > t; t++) | |||
|  |               this._originalPoints[t] = this._map.latLngToLayerPoint( | |||
|  |                 this._latlngs[t] | |||
|  |               ) | |||
|  |           }, | |||
|  |           getPathString: function() { | |||
|  |             for (var t = 0, e = this._parts.length, i = ''; e > t; t++) | |||
|  |               i += this._getPathPartStr(this._parts[t]) | |||
|  |             return i | |||
|  |           }, | |||
|  |           getLatLngs: function() { | |||
|  |             return this._latlngs | |||
|  |           }, | |||
|  |           setLatLngs: function(t) { | |||
|  |             return (this._latlngs = this._convertLatLngs(t)), this.redraw() | |||
|  |           }, | |||
|  |           addLatLng: function(t) { | |||
|  |             return this._latlngs.push(o.latLng(t)), this.redraw() | |||
|  |           }, | |||
|  |           spliceLatLngs: function() { | |||
|  |             var t = [].splice.apply(this._latlngs, arguments) | |||
|  |             return this._convertLatLngs(this._latlngs, !0), this.redraw(), t | |||
|  |           }, | |||
|  |           closestLayerPoint: function(t) { | |||
|  |             for ( | |||
|  |               var e, | |||
|  |                 i, | |||
|  |                 n = 1 / 0, | |||
|  |                 s = this._parts, | |||
|  |                 a = null, | |||
|  |                 r = 0, | |||
|  |                 h = s.length; | |||
|  |               h > r; | |||
|  |               r++ | |||
|  |             ) | |||
|  |               for (var l = s[r], u = 1, c = l.length; c > u; u++) { | |||
|  |                 ;(e = l[u - 1]), (i = l[u]) | |||
|  |                 var d = o.LineUtil._sqClosestPointOnSegment(t, e, i, !0) | |||
|  |                 n > d && | |||
|  |                   ((n = d), (a = o.LineUtil._sqClosestPointOnSegment(t, e, i))) | |||
|  |               } | |||
|  |             return a && (a.distance = Math.sqrt(n)), a | |||
|  |           }, | |||
|  |           getBounds: function() { | |||
|  |             return new o.LatLngBounds(this.getLatLngs()) | |||
|  |           }, | |||
|  |           _convertLatLngs: function(t, e) { | |||
|  |             var i, | |||
|  |               n, | |||
|  |               s = e ? t : [] | |||
|  |             for (i = 0, n = t.length; n > i; i++) { | |||
|  |               if (o.Util.isArray(t[i]) && 'number' != typeof t[i][0]) return | |||
|  |               s[i] = o.latLng(t[i]) | |||
|  |             } | |||
|  |             return s | |||
|  |           }, | |||
|  |           _initEvents: function() { | |||
|  |             o.Path.prototype._initEvents.call(this) | |||
|  |           }, | |||
|  |           _getPathPartStr: function(t) { | |||
|  |             for (var e, i = o.Path.VML, n = 0, s = t.length, a = ''; s > n; n++) | |||
|  |               (e = t[n]), | |||
|  |                 i && e._round(), | |||
|  |                 (a += (n ? 'L' : 'M') + e.x + ' ' + e.y) | |||
|  |             return a | |||
|  |           }, | |||
|  |           _clipPoints: function() { | |||
|  |             var t, | |||
|  |               e, | |||
|  |               i, | |||
|  |               n = this._originalPoints, | |||
|  |               s = n.length | |||
|  |             if (this.options.noClip) return void (this._parts = [n]) | |||
|  |             this._parts = [] | |||
|  |             var a = this._parts, | |||
|  |               r = this._map._pathViewport, | |||
|  |               h = o.LineUtil | |||
|  |             for (t = 0, e = 0; s - 1 > t; t++) | |||
|  |               (i = h.clipSegment(n[t], n[t + 1], r, t)), | |||
|  |                 i && | |||
|  |                   ((a[e] = a[e] || []), | |||
|  |                   a[e].push(i[0]), | |||
|  |                   (i[1] !== n[t + 1] || t === s - 2) && (a[e].push(i[1]), e++)) | |||
|  |           }, | |||
|  |           _simplifyPoints: function() { | |||
|  |             for ( | |||
|  |               var t = this._parts, e = o.LineUtil, i = 0, n = t.length; | |||
|  |               n > i; | |||
|  |               i++ | |||
|  |             ) | |||
|  |               t[i] = e.simplify(t[i], this.options.smoothFactor) | |||
|  |           }, | |||
|  |           _updatePath: function() { | |||
|  |             this._map && | |||
|  |               (this._clipPoints(), | |||
|  |               this._simplifyPoints(), | |||
|  |               o.Path.prototype._updatePath.call(this)) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.polyline = function(t, e) { | |||
|  |           return new o.Polyline(t, e) | |||
|  |         }), | |||
|  |         (o.PolyUtil = {}), | |||
|  |         (o.PolyUtil.clipPolygon = function(t, e) { | |||
|  |           var i, | |||
|  |             n, | |||
|  |             s, | |||
|  |             a, | |||
|  |             r, | |||
|  |             h, | |||
|  |             l, | |||
|  |             u, | |||
|  |             c, | |||
|  |             d = [1, 4, 2, 8], | |||
|  |             p = o.LineUtil | |||
|  |           for (n = 0, l = t.length; l > n; n++) | |||
|  |             t[n]._code = p._getBitCode(t[n], e) | |||
|  |           for (a = 0; 4 > a; a++) { | |||
|  |             for ( | |||
|  |               u = d[a], i = [], n = 0, l = t.length, s = l - 1; | |||
|  |               l > n; | |||
|  |               s = n++ | |||
|  |             ) | |||
|  |               (r = t[n]), | |||
|  |                 (h = t[s]), | |||
|  |                 r._code & u | |||
|  |                   ? h._code & u || | |||
|  |                     ((c = p._getEdgeIntersection(h, r, u, e)), | |||
|  |                     (c._code = p._getBitCode(c, e)), | |||
|  |                     i.push(c)) | |||
|  |                   : (h._code & u && | |||
|  |                       ((c = p._getEdgeIntersection(h, r, u, e)), | |||
|  |                       (c._code = p._getBitCode(c, e)), | |||
|  |                       i.push(c)), | |||
|  |                     i.push(r)) | |||
|  |             t = i | |||
|  |           } | |||
|  |           return t | |||
|  |         }), | |||
|  |         (o.Polygon = o.Polyline.extend({ | |||
|  |           options: { fill: !0 }, | |||
|  |           initialize: function(t, e) { | |||
|  |             o.Polyline.prototype.initialize.call(this, t, e), | |||
|  |               this._initWithHoles(t) | |||
|  |           }, | |||
|  |           _initWithHoles: function(t) { | |||
|  |             var e, i, n | |||
|  |             if (t && o.Util.isArray(t[0]) && 'number' != typeof t[0][0]) | |||
|  |               for ( | |||
|  |                 this._latlngs = this._convertLatLngs(t[0]), | |||
|  |                   this._holes = t.slice(1), | |||
|  |                   e = 0, | |||
|  |                   i = this._holes.length; | |||
|  |                 i > e; | |||
|  |                 e++ | |||
|  |               ) | |||
|  |                 (n = this._holes[e] = this._convertLatLngs(this._holes[e])), | |||
|  |                   n[0].equals(n[n.length - 1]) && n.pop() | |||
|  |             ;(t = this._latlngs), | |||
|  |               t.length >= 2 && t[0].equals(t[t.length - 1]) && t.pop() | |||
|  |           }, | |||
|  |           projectLatlngs: function() { | |||
|  |             if ( | |||
|  |               (o.Polyline.prototype.projectLatlngs.call(this), | |||
|  |               (this._holePoints = []), | |||
|  |               this._holes) | |||
|  |             ) { | |||
|  |               var t, e, i, n | |||
|  |               for (t = 0, i = this._holes.length; i > t; t++) | |||
|  |                 for ( | |||
|  |                   this._holePoints[t] = [], e = 0, n = this._holes[t].length; | |||
|  |                   n > e; | |||
|  |                   e++ | |||
|  |                 ) | |||
|  |                   this._holePoints[t][e] = this._map.latLngToLayerPoint( | |||
|  |                     this._holes[t][e] | |||
|  |                   ) | |||
|  |             } | |||
|  |           }, | |||
|  |           setLatLngs: function(t) { | |||
|  |             return t && o.Util.isArray(t[0]) && 'number' != typeof t[0][0] | |||
|  |               ? (this._initWithHoles(t), this.redraw()) | |||
|  |               : o.Polyline.prototype.setLatLngs.call(this, t) | |||
|  |           }, | |||
|  |           _clipPoints: function() { | |||
|  |             var t = this._originalPoints, | |||
|  |               e = [] | |||
|  |             if ( | |||
|  |               ((this._parts = [t].concat(this._holePoints)), | |||
|  |               !this.options.noClip) | |||
|  |             ) { | |||
|  |               for (var i = 0, n = this._parts.length; n > i; i++) { | |||
|  |                 var s = o.PolyUtil.clipPolygon( | |||
|  |                   this._parts[i], | |||
|  |                   this._map._pathViewport | |||
|  |                 ) | |||
|  |                 s.length && e.push(s) | |||
|  |               } | |||
|  |               this._parts = e | |||
|  |             } | |||
|  |           }, | |||
|  |           _getPathPartStr: function(t) { | |||
|  |             var e = o.Polyline.prototype._getPathPartStr.call(this, t) | |||
|  |             return e + (o.Browser.svg ? 'z' : 'x') | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.polygon = function(t, e) { | |||
|  |           return new o.Polygon(t, e) | |||
|  |         }), | |||
|  |         (function() { | |||
|  |           function t(t) { | |||
|  |             return o.FeatureGroup.extend({ | |||
|  |               initialize: function(t, e) { | |||
|  |                 ;(this._layers = {}), (this._options = e), this.setLatLngs(t) | |||
|  |               }, | |||
|  |               setLatLngs: function(e) { | |||
|  |                 var i = 0, | |||
|  |                   n = e.length | |||
|  |                 for ( | |||
|  |                   this.eachLayer(function(t) { | |||
|  |                     n > i ? t.setLatLngs(e[i++]) : this.removeLayer(t) | |||
|  |                   }, this); | |||
|  |                   n > i; | |||
|  | 
 | |||
|  |                 ) | |||
|  |                   this.addLayer(new t(e[i++], this._options)) | |||
|  |                 return this | |||
|  |               }, | |||
|  |               getLatLngs: function() { | |||
|  |                 var t = [] | |||
|  |                 return ( | |||
|  |                   this.eachLayer(function(e) { | |||
|  |                     t.push(e.getLatLngs()) | |||
|  |                   }), | |||
|  |                   t | |||
|  |                 ) | |||
|  |               } | |||
|  |             }) | |||
|  |           } | |||
|  | 
 | |||
|  |           ;(o.MultiPolyline = t(o.Polyline)), | |||
|  |             (o.MultiPolygon = t(o.Polygon)), | |||
|  |             (o.multiPolyline = function(t, e) { | |||
|  |               return new o.MultiPolyline(t, e) | |||
|  |             }), | |||
|  |             (o.multiPolygon = function(t, e) { | |||
|  |               return new o.MultiPolygon(t, e) | |||
|  |             }) | |||
|  |         })(), | |||
|  |         (o.Rectangle = o.Polygon.extend({ | |||
|  |           initialize: function(t, e) { | |||
|  |             o.Polygon.prototype.initialize.call( | |||
|  |               this, | |||
|  |               this._boundsToLatLngs(t), | |||
|  |               e | |||
|  |             ) | |||
|  |           }, | |||
|  |           setBounds: function(t) { | |||
|  |             this.setLatLngs(this._boundsToLatLngs(t)) | |||
|  |           }, | |||
|  |           _boundsToLatLngs: function(t) { | |||
|  |             return ( | |||
|  |               (t = o.latLngBounds(t)), | |||
|  |               [ | |||
|  |                 t.getSouthWest(), | |||
|  |                 t.getNorthWest(), | |||
|  |                 t.getNorthEast(), | |||
|  |                 t.getSouthEast() | |||
|  |               ] | |||
|  |             ) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.rectangle = function(t, e) { | |||
|  |           return new o.Rectangle(t, e) | |||
|  |         }), | |||
|  |         (o.Circle = o.Path.extend({ | |||
|  |           initialize: function(t, e, i) { | |||
|  |             o.Path.prototype.initialize.call(this, i), | |||
|  |               (this._latlng = o.latLng(t)), | |||
|  |               (this._mRadius = e) | |||
|  |           }, | |||
|  |           options: { fill: !0 }, | |||
|  |           setLatLng: function(t) { | |||
|  |             return (this._latlng = o.latLng(t)), this.redraw() | |||
|  |           }, | |||
|  |           setRadius: function(t) { | |||
|  |             return (this._mRadius = t), this.redraw() | |||
|  |           }, | |||
|  |           projectLatlngs: function() { | |||
|  |             var t = this._getLngRadius(), | |||
|  |               e = this._latlng, | |||
|  |               i = this._map.latLngToLayerPoint([e.lat, e.lng - t]) | |||
|  |             ;(this._point = this._map.latLngToLayerPoint(e)), | |||
|  |               (this._radius = Math.max(this._point.x - i.x, 1)) | |||
|  |           }, | |||
|  |           getBounds: function() { | |||
|  |             var t = this._getLngRadius(), | |||
|  |               e = (this._mRadius / 40075017) * 360, | |||
|  |               i = this._latlng | |||
|  |             return new o.LatLngBounds( | |||
|  |               [i.lat - e, i.lng - t], | |||
|  |               [i.lat + e, i.lng + t] | |||
|  |             ) | |||
|  |           }, | |||
|  |           getLatLng: function() { | |||
|  |             return this._latlng | |||
|  |           }, | |||
|  |           getPathString: function() { | |||
|  |             var t = this._point, | |||
|  |               e = this._radius | |||
|  |             return this._checkIfEmpty() | |||
|  |               ? '' | |||
|  |               : o.Browser.svg | |||
|  |               ? 'M' + | |||
|  |                 t.x + | |||
|  |                 ',' + | |||
|  |                 (t.y - e) + | |||
|  |                 'A' + | |||
|  |                 e + | |||
|  |                 ',' + | |||
|  |                 e + | |||
|  |                 ',0,1,1,' + | |||
|  |                 (t.x - 0.1) + | |||
|  |                 ',' + | |||
|  |                 (t.y - e) + | |||
|  |                 ' z' | |||
|  |               : (t._round(), | |||
|  |                 (e = Math.round(e)), | |||
|  |                 'AL ' + t.x + ',' + t.y + ' ' + e + ',' + e + ' 0,23592600') | |||
|  |           }, | |||
|  |           getRadius: function() { | |||
|  |             return this._mRadius | |||
|  |           }, | |||
|  |           _getLatRadius: function() { | |||
|  |             return (this._mRadius / 40075017) * 360 | |||
|  |           }, | |||
|  |           _getLngRadius: function() { | |||
|  |             return ( | |||
|  |               this._getLatRadius() / | |||
|  |               Math.cos(o.LatLng.DEG_TO_RAD * this._latlng.lat) | |||
|  |             ) | |||
|  |           }, | |||
|  |           _checkIfEmpty: function() { | |||
|  |             if (!this._map) return !1 | |||
|  |             var t = this._map._pathViewport, | |||
|  |               e = this._radius, | |||
|  |               i = this._point | |||
|  |             return ( | |||
|  |               i.x - e > t.max.x || | |||
|  |               i.y - e > t.max.y || | |||
|  |               i.x + e < t.min.x || | |||
|  |               i.y + e < t.min.y | |||
|  |             ) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.circle = function(t, e, i) { | |||
|  |           return new o.Circle(t, e, i) | |||
|  |         }), | |||
|  |         (o.CircleMarker = o.Circle.extend({ | |||
|  |           options: { radius: 10, weight: 2 }, | |||
|  |           initialize: function(t, e) { | |||
|  |             o.Circle.prototype.initialize.call(this, t, null, e), | |||
|  |               (this._radius = this.options.radius) | |||
|  |           }, | |||
|  |           projectLatlngs: function() { | |||
|  |             this._point = this._map.latLngToLayerPoint(this._latlng) | |||
|  |           }, | |||
|  |           _updateStyle: function() { | |||
|  |             o.Circle.prototype._updateStyle.call(this), | |||
|  |               this.setRadius(this.options.radius) | |||
|  |           }, | |||
|  |           setLatLng: function(t) { | |||
|  |             return ( | |||
|  |               o.Circle.prototype.setLatLng.call(this, t), | |||
|  |               this._popup && this._popup._isOpen && this._popup.setLatLng(t), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           setRadius: function(t) { | |||
|  |             return (this.options.radius = this._radius = t), this.redraw() | |||
|  |           }, | |||
|  |           getRadius: function() { | |||
|  |             return this._radius | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.circleMarker = function(t, e) { | |||
|  |           return new o.CircleMarker(t, e) | |||
|  |         }), | |||
|  |         o.Polyline.include( | |||
|  |           o.Path.CANVAS | |||
|  |             ? { | |||
|  |                 _containsPoint: function(t, e) { | |||
|  |                   var i, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     a, | |||
|  |                     r, | |||
|  |                     h, | |||
|  |                     l, | |||
|  |                     u = this.options.weight / 2 | |||
|  |                   for ( | |||
|  |                     o.Browser.touch && (u += 10), i = 0, a = this._parts.length; | |||
|  |                     a > i; | |||
|  |                     i++ | |||
|  |                   ) | |||
|  |                     for ( | |||
|  |                       l = this._parts[i], n = 0, r = l.length, s = r - 1; | |||
|  |                       r > n; | |||
|  |                       s = n++ | |||
|  |                     ) | |||
|  |                       if ( | |||
|  |                         (e || 0 !== n) && | |||
|  |                         ((h = o.LineUtil.pointToSegmentDistance(t, l[s], l[n])), | |||
|  |                         u >= h) | |||
|  |                       ) | |||
|  |                         return !0 | |||
|  |                   return !1 | |||
|  |                 } | |||
|  |               } | |||
|  |             : {} | |||
|  |         ), | |||
|  |         o.Polygon.include( | |||
|  |           o.Path.CANVAS | |||
|  |             ? { | |||
|  |                 _containsPoint: function(t) { | |||
|  |                   var e, | |||
|  |                     i, | |||
|  |                     n, | |||
|  |                     s, | |||
|  |                     a, | |||
|  |                     r, | |||
|  |                     h, | |||
|  |                     l, | |||
|  |                     u = !1 | |||
|  |                   if (o.Polyline.prototype._containsPoint.call(this, t, !0)) | |||
|  |                     return !0 | |||
|  |                   for (s = 0, h = this._parts.length; h > s; s++) | |||
|  |                     for ( | |||
|  |                       e = this._parts[s], a = 0, l = e.length, r = l - 1; | |||
|  |                       l > a; | |||
|  |                       r = a++ | |||
|  |                     ) | |||
|  |                       (i = e[a]), | |||
|  |                         (n = e[r]), | |||
|  |                         i.y > t.y != n.y > t.y && | |||
|  |                           t.x < | |||
|  |                             ((n.x - i.x) * (t.y - i.y)) / (n.y - i.y) + i.x && | |||
|  |                           (u = !u) | |||
|  |                   return u | |||
|  |                 } | |||
|  |               } | |||
|  |             : {} | |||
|  |         ), | |||
|  |         o.Circle.include( | |||
|  |           o.Path.CANVAS | |||
|  |             ? { | |||
|  |                 _drawPath: function() { | |||
|  |                   var t = this._point | |||
|  |                   this._ctx.beginPath(), | |||
|  |                     this._ctx.arc(t.x, t.y, this._radius, 0, 2 * Math.PI, !1) | |||
|  |                 }, | |||
|  |                 _containsPoint: function(t) { | |||
|  |                   var e = this._point, | |||
|  |                     i = this.options.stroke ? this.options.weight / 2 : 0 | |||
|  |                   return t.distanceTo(e) <= this._radius + i | |||
|  |                 } | |||
|  |               } | |||
|  |             : {} | |||
|  |         ), | |||
|  |         o.CircleMarker.include( | |||
|  |           o.Path.CANVAS | |||
|  |             ? { | |||
|  |                 _updateStyle: function() { | |||
|  |                   o.Path.prototype._updateStyle.call(this) | |||
|  |                 } | |||
|  |               } | |||
|  |             : {} | |||
|  |         ), | |||
|  |         (o.GeoJSON = o.FeatureGroup.extend({ | |||
|  |           initialize: function(t, e) { | |||
|  |             o.setOptions(this, e), (this._layers = {}), t && this.addData(t) | |||
|  |           }, | |||
|  |           addData: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n, | |||
|  |               s = o.Util.isArray(t) ? t : t.features | |||
|  |             if (s) { | |||
|  |               for (e = 0, i = s.length; i > e; e++) | |||
|  |                 (n = s[e]), | |||
|  |                   (n.geometries || n.geometry || n.features || n.coordinates) && | |||
|  |                     this.addData(s[e]) | |||
|  |               return this | |||
|  |             } | |||
|  |             var a = this.options | |||
|  |             if (!a.filter || a.filter(t)) { | |||
|  |               var r = o.GeoJSON.geometryToLayer( | |||
|  |                 t, | |||
|  |                 a.pointToLayer, | |||
|  |                 a.coordsToLatLng, | |||
|  |                 a | |||
|  |               ) | |||
|  |               return ( | |||
|  |                 (r.feature = o.GeoJSON.asFeature(t)), | |||
|  |                 (r.defaultOptions = r.options), | |||
|  |                 this.resetStyle(r), | |||
|  |                 a.onEachFeature && a.onEachFeature(t, r), | |||
|  |                 this.addLayer(r) | |||
|  |               ) | |||
|  |             } | |||
|  |           }, | |||
|  |           resetStyle: function(t) { | |||
|  |             var e = this.options.style | |||
|  |             e && | |||
|  |               (o.Util.extend(t.options, t.defaultOptions), | |||
|  |               this._setLayerStyle(t, e)) | |||
|  |           }, | |||
|  |           setStyle: function(t) { | |||
|  |             this.eachLayer(function(e) { | |||
|  |               this._setLayerStyle(e, t) | |||
|  |             }, this) | |||
|  |           }, | |||
|  |           _setLayerStyle: function(t, e) { | |||
|  |             'function' == typeof e && (e = e(t.feature)), | |||
|  |               t.setStyle && t.setStyle(e) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.extend(o.GeoJSON, { | |||
|  |           geometryToLayer: function(t, e, i, n) { | |||
|  |             var s, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h, | |||
|  |               l = 'Feature' === t.type ? t.geometry : t, | |||
|  |               u = l.coordinates, | |||
|  |               c = [] | |||
|  |             switch (((i = i || this.coordsToLatLng), l.type)) { | |||
|  |               case 'Point': | |||
|  |                 return (s = i(u)), e ? e(t, s) : new o.Marker(s) | |||
|  |               case 'MultiPoint': | |||
|  |                 for (r = 0, h = u.length; h > r; r++) | |||
|  |                   (s = i(u[r])), c.push(e ? e(t, s) : new o.Marker(s)) | |||
|  |                 return new o.FeatureGroup(c) | |||
|  |               case 'LineString': | |||
|  |                 return (a = this.coordsToLatLngs(u, 0, i)), new o.Polyline(a, n) | |||
|  |               case 'Polygon': | |||
|  |                 if (2 === u.length && !u[1].length) | |||
|  |                   throw new Error('Invalid GeoJSON object.') | |||
|  |                 return (a = this.coordsToLatLngs(u, 1, i)), new o.Polygon(a, n) | |||
|  |               case 'MultiLineString': | |||
|  |                 return ( | |||
|  |                   (a = this.coordsToLatLngs(u, 1, i)), new o.MultiPolyline(a, n) | |||
|  |                 ) | |||
|  |               case 'MultiPolygon': | |||
|  |                 return ( | |||
|  |                   (a = this.coordsToLatLngs(u, 2, i)), new o.MultiPolygon(a, n) | |||
|  |                 ) | |||
|  |               case 'GeometryCollection': | |||
|  |                 for (r = 0, h = l.geometries.length; h > r; r++) | |||
|  |                   c.push( | |||
|  |                     this.geometryToLayer( | |||
|  |                       { | |||
|  |                         geometry: l.geometries[r], | |||
|  |                         type: 'Feature', | |||
|  |                         properties: t.properties | |||
|  |                       }, | |||
|  |                       e, | |||
|  |                       i, | |||
|  |                       n | |||
|  |                     ) | |||
|  |                   ) | |||
|  |                 return new o.FeatureGroup(c) | |||
|  |               default: | |||
|  |                 throw new Error('Invalid GeoJSON object.') | |||
|  |             } | |||
|  |           }, | |||
|  |           coordsToLatLng: function(t) { | |||
|  |             return new o.LatLng(t[1], t[0], t[2]) | |||
|  |           }, | |||
|  |           coordsToLatLngs: function(t, e, i) { | |||
|  |             var n, | |||
|  |               o, | |||
|  |               s, | |||
|  |               a = [] | |||
|  |             for (o = 0, s = t.length; s > o; o++) | |||
|  |               (n = e | |||
|  |                 ? this.coordsToLatLngs(t[o], e - 1, i) | |||
|  |                 : (i || this.coordsToLatLng)(t[o])), | |||
|  |                 a.push(n) | |||
|  |             return a | |||
|  |           }, | |||
|  |           latLngToCoords: function(t) { | |||
|  |             var e = [t.lng, t.lat] | |||
|  |             return t.alt !== i && e.push(t.alt), e | |||
|  |           }, | |||
|  |           latLngsToCoords: function(t) { | |||
|  |             for (var e = [], i = 0, n = t.length; n > i; i++) | |||
|  |               e.push(o.GeoJSON.latLngToCoords(t[i])) | |||
|  |             return e | |||
|  |           }, | |||
|  |           getFeature: function(t, e) { | |||
|  |             return t.feature | |||
|  |               ? o.extend({}, t.feature, { geometry: e }) | |||
|  |               : o.GeoJSON.asFeature(e) | |||
|  |           }, | |||
|  |           asFeature: function(t) { | |||
|  |             return 'Feature' === t.type | |||
|  |               ? t | |||
|  |               : { type: 'Feature', properties: {}, geometry: t } | |||
|  |           } | |||
|  |         }) | |||
|  |       var a = { | |||
|  |         toGeoJSON: function() { | |||
|  |           return o.GeoJSON.getFeature(this, { | |||
|  |             type: 'Point', | |||
|  |             coordinates: o.GeoJSON.latLngToCoords(this.getLatLng()) | |||
|  |           }) | |||
|  |         } | |||
|  |       } | |||
|  |       o.Marker.include(a), | |||
|  |         o.Circle.include(a), | |||
|  |         o.CircleMarker.include(a), | |||
|  |         o.Polyline.include({ | |||
|  |           toGeoJSON: function() { | |||
|  |             return o.GeoJSON.getFeature(this, { | |||
|  |               type: 'LineString', | |||
|  |               coordinates: o.GeoJSON.latLngsToCoords(this.getLatLngs()) | |||
|  |             }) | |||
|  |           } | |||
|  |         }), | |||
|  |         o.Polygon.include({ | |||
|  |           toGeoJSON: function() { | |||
|  |             var t, | |||
|  |               e, | |||
|  |               i, | |||
|  |               n = [o.GeoJSON.latLngsToCoords(this.getLatLngs())] | |||
|  |             if ((n[0].push(n[0][0]), this._holes)) | |||
|  |               for (t = 0, e = this._holes.length; e > t; t++) | |||
|  |                 (i = o.GeoJSON.latLngsToCoords(this._holes[t])), | |||
|  |                   i.push(i[0]), | |||
|  |                   n.push(i) | |||
|  |             return o.GeoJSON.getFeature(this, { | |||
|  |               type: 'Polygon', | |||
|  |               coordinates: n | |||
|  |             }) | |||
|  |           } | |||
|  |         }), | |||
|  |         (function() { | |||
|  |           function t(t) { | |||
|  |             return function() { | |||
|  |               var e = [] | |||
|  |               return ( | |||
|  |                 this.eachLayer(function(t) { | |||
|  |                   e.push(t.toGeoJSON().geometry.coordinates) | |||
|  |                 }), | |||
|  |                 o.GeoJSON.getFeature(this, { type: t, coordinates: e }) | |||
|  |               ) | |||
|  |             } | |||
|  |           } | |||
|  | 
 | |||
|  |           o.MultiPolyline.include({ toGeoJSON: t('MultiLineString') }), | |||
|  |             o.MultiPolygon.include({ toGeoJSON: t('MultiPolygon') }), | |||
|  |             o.LayerGroup.include({ | |||
|  |               toGeoJSON: function() { | |||
|  |                 var e, | |||
|  |                   i = this.feature && this.feature.geometry, | |||
|  |                   n = [] | |||
|  |                 if (i && 'MultiPoint' === i.type) | |||
|  |                   return t('MultiPoint').call(this) | |||
|  |                 var s = i && 'GeometryCollection' === i.type | |||
|  |                 return ( | |||
|  |                   this.eachLayer(function(t) { | |||
|  |                     t.toGeoJSON && | |||
|  |                       ((e = t.toGeoJSON()), | |||
|  |                       n.push(s ? e.geometry : o.GeoJSON.asFeature(e))) | |||
|  |                   }), | |||
|  |                   s | |||
|  |                     ? o.GeoJSON.getFeature(this, { | |||
|  |                         geometries: n, | |||
|  |                         type: 'GeometryCollection' | |||
|  |                       }) | |||
|  |                     : { | |||
|  |                         type: 'FeatureCollection', | |||
|  |                         features: n | |||
|  |                       } | |||
|  |                 ) | |||
|  |               } | |||
|  |             }) | |||
|  |         })(), | |||
|  |         (o.geoJson = function(t, e) { | |||
|  |           return new o.GeoJSON(t, e) | |||
|  |         }), | |||
|  |         (o.DomEvent = { | |||
|  |           addListener: function(t, e, i, n) { | |||
|  |             var s, | |||
|  |               a, | |||
|  |               r, | |||
|  |               h = o.stamp(i), | |||
|  |               l = '_leaflet_' + e + h | |||
|  |             return t[l] | |||
|  |               ? this | |||
|  |               : ((s = function(e) { | |||
|  |                   return i.call(n || t, e || o.DomEvent._getEvent()) | |||
|  |                 }), | |||
|  |                 o.Browser.pointer && 0 === e.indexOf('touch') | |||
|  |                   ? this.addPointerListener(t, e, s, h) | |||
|  |                   : (o.Browser.touch && | |||
|  |                       'dblclick' === e && | |||
|  |                       this.addDoubleTapListener && | |||
|  |                       this.addDoubleTapListener(t, s, h), | |||
|  |                     'addEventListener' in t | |||
|  |                       ? 'mousewheel' === e | |||
|  |                         ? (t.addEventListener('DOMMouseScroll', s, !1), | |||
|  |                           t.addEventListener(e, s, !1)) | |||
|  |                         : 'mouseenter' === e || 'mouseleave' === e | |||
|  |                         ? ((a = s), | |||
|  |                           (r = 'mouseenter' === e ? 'mouseover' : 'mouseout'), | |||
|  |                           (s = function(e) { | |||
|  |                             return o.DomEvent._checkMouse(t, e) ? a(e) : void 0 | |||
|  |                           }), | |||
|  |                           t.addEventListener(r, s, !1)) | |||
|  |                         : 'click' === e && o.Browser.android | |||
|  |                         ? ((a = s), | |||
|  |                           (s = function(t) { | |||
|  |                             return o.DomEvent._filterClick(t, a) | |||
|  |                           }), | |||
|  |                           t.addEventListener(e, s, !1)) | |||
|  |                         : t.addEventListener(e, s, !1) | |||
|  |                       : 'attachEvent' in t && t.attachEvent('on' + e, s), | |||
|  |                     (t[l] = s), | |||
|  |                     this)) | |||
|  |           }, | |||
|  |           removeListener: function(t, e, i) { | |||
|  |             var n = o.stamp(i), | |||
|  |               s = '_leaflet_' + e + n, | |||
|  |               a = t[s] | |||
|  |             return a | |||
|  |               ? (o.Browser.pointer && 0 === e.indexOf('touch') | |||
|  |                   ? this.removePointerListener(t, e, n) | |||
|  |                   : o.Browser.touch && | |||
|  |                     'dblclick' === e && | |||
|  |                     this.removeDoubleTapListener | |||
|  |                   ? this.removeDoubleTapListener(t, n) | |||
|  |                   : 'removeEventListener' in t | |||
|  |                   ? 'mousewheel' === e | |||
|  |                     ? (t.removeEventListener('DOMMouseScroll', a, !1), | |||
|  |                       t.removeEventListener(e, a, !1)) | |||
|  |                     : 'mouseenter' === e || 'mouseleave' === e | |||
|  |                     ? t.removeEventListener( | |||
|  |                         'mouseenter' === e ? 'mouseover' : 'mouseout', | |||
|  |                         a, | |||
|  |                         !1 | |||
|  |                       ) | |||
|  |                     : t.removeEventListener(e, a, !1) | |||
|  |                   : 'detachEvent' in t && t.detachEvent('on' + e, a), | |||
|  |                 (t[s] = null), | |||
|  |                 this) | |||
|  |               : this | |||
|  |           }, | |||
|  |           stopPropagation: function(t) { | |||
|  |             return ( | |||
|  |               t.stopPropagation ? t.stopPropagation() : (t.cancelBubble = !0), | |||
|  |               o.DomEvent._skipped(t), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           disableScrollPropagation: function(t) { | |||
|  |             var e = o.DomEvent.stopPropagation | |||
|  |             return o.DomEvent.on(t, 'mousewheel', e).on( | |||
|  |               t, | |||
|  |               'MozMousePixelScroll', | |||
|  |               e | |||
|  |             ) | |||
|  |           }, | |||
|  |           disableClickPropagation: function(t) { | |||
|  |             for ( | |||
|  |               var e = o.DomEvent.stopPropagation, | |||
|  |                 i = o.Draggable.START.length - 1; | |||
|  |               i >= 0; | |||
|  |               i-- | |||
|  |             ) | |||
|  |               o.DomEvent.on(t, o.Draggable.START[i], e) | |||
|  |             return o.DomEvent.on(t, 'click', o.DomEvent._fakeStop).on( | |||
|  |               t, | |||
|  |               'dblclick', | |||
|  |               e | |||
|  |             ) | |||
|  |           }, | |||
|  |           preventDefault: function(t) { | |||
|  |             return ( | |||
|  |               t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this | |||
|  |             ) | |||
|  |           }, | |||
|  |           stop: function(t) { | |||
|  |             return o.DomEvent.preventDefault(t).stopPropagation(t) | |||
|  |           }, | |||
|  |           getMousePosition: function(t, e) { | |||
|  |             if (!e) return new o.Point(t.clientX, t.clientY) | |||
|  |             var i = e.getBoundingClientRect() | |||
|  |             return new o.Point( | |||
|  |               t.clientX - i.left - e.clientLeft, | |||
|  |               t.clientY - i.top - e.clientTop | |||
|  |             ) | |||
|  |           }, | |||
|  |           getWheelDelta: function(t) { | |||
|  |             var e = 0 | |||
|  |             return ( | |||
|  |               t.wheelDelta && (e = t.wheelDelta / 120), | |||
|  |               t.detail && (e = -t.detail / 3), | |||
|  |               e | |||
|  |             ) | |||
|  |           }, | |||
|  |           _skipEvents: {}, | |||
|  |           _fakeStop: function(t) { | |||
|  |             o.DomEvent._skipEvents[t.type] = !0 | |||
|  |           }, | |||
|  |           _skipped: function(t) { | |||
|  |             var e = this._skipEvents[t.type] | |||
|  |             return (this._skipEvents[t.type] = !1), e | |||
|  |           }, | |||
|  |           _checkMouse: function(t, e) { | |||
|  |             var i = e.relatedTarget | |||
|  |             if (!i) return !0 | |||
|  |             try { | |||
|  |               for (; i && i !== t; ) i = i.parentNode | |||
|  |             } catch (n) { | |||
|  |               return !1 | |||
|  |             } | |||
|  |             return i !== t | |||
|  |           }, | |||
|  |           _getEvent: function() { | |||
|  |             var e = t.event | |||
|  |             if (!e) | |||
|  |               for ( | |||
|  |                 var i = arguments.callee.caller; | |||
|  |                 i && ((e = i.arguments[0]), !e || t.Event !== e.constructor); | |||
|  | 
 | |||
|  |               ) | |||
|  |                 i = i.caller | |||
|  |             return e | |||
|  |           }, | |||
|  |           _filterClick: function(t, e) { | |||
|  |             var i = t.timeStamp || t.originalEvent.timeStamp, | |||
|  |               n = o.DomEvent._lastClick && i - o.DomEvent._lastClick | |||
|  |             return (n && n > 100 && 500 > n) || | |||
|  |               (t.target._simulatedClick && !t._simulated) | |||
|  |               ? void o.DomEvent.stop(t) | |||
|  |               : ((o.DomEvent._lastClick = i), e(t)) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.DomEvent.on = o.DomEvent.addListener), | |||
|  |         (o.DomEvent.off = o.DomEvent.removeListener), | |||
|  |         (o.Draggable = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           statics: { | |||
|  |             START: o.Browser.touch | |||
|  |               ? ['touchstart', 'mousedown'] | |||
|  |               : ['mousedown'], | |||
|  |             END: { | |||
|  |               mousedown: 'mouseup', | |||
|  |               touchstart: 'touchend', | |||
|  |               pointerdown: 'touchend', | |||
|  |               MSPointerDown: 'touchend' | |||
|  |             }, | |||
|  |             MOVE: { | |||
|  |               mousedown: 'mousemove', | |||
|  |               touchstart: 'touchmove', | |||
|  |               pointerdown: 'touchmove', | |||
|  |               MSPointerDown: 'touchmove' | |||
|  |             } | |||
|  |           }, | |||
|  |           initialize: function(t, e) { | |||
|  |             ;(this._element = t), (this._dragStartTarget = e || t) | |||
|  |           }, | |||
|  |           enable: function() { | |||
|  |             if (!this._enabled) { | |||
|  |               for (var t = o.Draggable.START.length - 1; t >= 0; t--) | |||
|  |                 o.DomEvent.on( | |||
|  |                   this._dragStartTarget, | |||
|  |                   o.Draggable.START[t], | |||
|  |                   this._onDown, | |||
|  |                   this | |||
|  |                 ) | |||
|  |               this._enabled = !0 | |||
|  |             } | |||
|  |           }, | |||
|  |           disable: function() { | |||
|  |             if (this._enabled) { | |||
|  |               for (var t = o.Draggable.START.length - 1; t >= 0; t--) | |||
|  |                 o.DomEvent.off( | |||
|  |                   this._dragStartTarget, | |||
|  |                   o.Draggable.START[t], | |||
|  |                   this._onDown, | |||
|  |                   this | |||
|  |                 ) | |||
|  |               ;(this._enabled = !1), (this._moved = !1) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onDown: function(t) { | |||
|  |             if ( | |||
|  |               ((this._moved = !1), | |||
|  |               !t.shiftKey && | |||
|  |                 (1 === t.which || 1 === t.button || t.touches) && | |||
|  |                 (o.DomEvent.stopPropagation(t), | |||
|  |                 !o.Draggable._disabled && | |||
|  |                   (o.DomUtil.disableImageDrag(), | |||
|  |                   o.DomUtil.disableTextSelection(), | |||
|  |                   !this._moving))) | |||
|  |             ) { | |||
|  |               var i = t.touches ? t.touches[0] : t | |||
|  |               ;(this._startPoint = new o.Point(i.clientX, i.clientY)), | |||
|  |                 (this._startPos = this._newPos = o.DomUtil.getPosition( | |||
|  |                   this._element | |||
|  |                 )), | |||
|  |                 o.DomEvent.on( | |||
|  |                   e, | |||
|  |                   o.Draggable.MOVE[t.type], | |||
|  |                   this._onMove, | |||
|  |                   this | |||
|  |                 ).on(e, o.Draggable.END[t.type], this._onUp, this) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onMove: function(t) { | |||
|  |             if (t.touches && t.touches.length > 1) | |||
|  |               return void (this._moved = !0) | |||
|  |             var i = t.touches && 1 === t.touches.length ? t.touches[0] : t, | |||
|  |               n = new o.Point(i.clientX, i.clientY), | |||
|  |               s = n.subtract(this._startPoint) | |||
|  |             ;(s.x || s.y) && | |||
|  |               ((o.Browser.touch && Math.abs(s.x) + Math.abs(s.y) < 3) || | |||
|  |                 (o.DomEvent.preventDefault(t), | |||
|  |                 this._moved || | |||
|  |                   (this.fire('dragstart'), | |||
|  |                   (this._moved = !0), | |||
|  |                   (this._startPos = o.DomUtil.getPosition( | |||
|  |                     this._element | |||
|  |                   ).subtract(s)), | |||
|  |                   o.DomUtil.addClass(e.body, 'leaflet-dragging'), | |||
|  |                   (this._lastTarget = t.target || t.srcElement), | |||
|  |                   o.DomUtil.addClass(this._lastTarget, 'leaflet-drag-target')), | |||
|  |                 (this._newPos = this._startPos.add(s)), | |||
|  |                 (this._moving = !0), | |||
|  |                 o.Util.cancelAnimFrame(this._animRequest), | |||
|  |                 (this._animRequest = o.Util.requestAnimFrame( | |||
|  |                   this._updatePosition, | |||
|  |                   this, | |||
|  |                   !0, | |||
|  |                   this._dragStartTarget | |||
|  |                 )))) | |||
|  |           }, | |||
|  |           _updatePosition: function() { | |||
|  |             this.fire('predrag'), | |||
|  |               o.DomUtil.setPosition(this._element, this._newPos), | |||
|  |               this.fire('drag') | |||
|  |           }, | |||
|  |           _onUp: function() { | |||
|  |             o.DomUtil.removeClass(e.body, 'leaflet-dragging'), | |||
|  |               this._lastTarget && | |||
|  |                 (o.DomUtil.removeClass(this._lastTarget, 'leaflet-drag-target'), | |||
|  |                 (this._lastTarget = null)) | |||
|  |             for (var t in o.Draggable.MOVE) | |||
|  |               o.DomEvent.off(e, o.Draggable.MOVE[t], this._onMove).off( | |||
|  |                 e, | |||
|  |                 o.Draggable.END[t], | |||
|  |                 this._onUp | |||
|  |               ) | |||
|  |             o.DomUtil.enableImageDrag(), | |||
|  |               o.DomUtil.enableTextSelection(), | |||
|  |               this._moved && | |||
|  |                 this._moving && | |||
|  |                 (o.Util.cancelAnimFrame(this._animRequest), | |||
|  |                 this.fire('dragend', { | |||
|  |                   distance: this._newPos.distanceTo(this._startPos) | |||
|  |                 })), | |||
|  |               (this._moving = !1) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.Handler = o.Class.extend({ | |||
|  |           initialize: function(t) { | |||
|  |             this._map = t | |||
|  |           }, | |||
|  |           enable: function() { | |||
|  |             this._enabled || ((this._enabled = !0), this.addHooks()) | |||
|  |           }, | |||
|  |           disable: function() { | |||
|  |             this._enabled && ((this._enabled = !1), this.removeHooks()) | |||
|  |           }, | |||
|  |           enabled: function() { | |||
|  |             return !!this._enabled | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.mergeOptions({ | |||
|  |           dragging: !0, | |||
|  |           inertia: !o.Browser.android23, | |||
|  |           inertiaDeceleration: 3400, | |||
|  |           inertiaMaxSpeed: 1 / 0, | |||
|  |           inertiaThreshold: o.Browser.touch ? 32 : 18, | |||
|  |           easeLinearity: 0.25, | |||
|  |           worldCopyJump: !1 | |||
|  |         }), | |||
|  |         (o.Map.Drag = o.Handler.extend({ | |||
|  |           addHooks: function() { | |||
|  |             if (!this._draggable) { | |||
|  |               var t = this._map | |||
|  |               ;(this._draggable = new o.Draggable(t._mapPane, t._container)), | |||
|  |                 this._draggable.on( | |||
|  |                   { | |||
|  |                     dragstart: this._onDragStart, | |||
|  |                     drag: this._onDrag, | |||
|  |                     dragend: this._onDragEnd | |||
|  |                   }, | |||
|  |                   this | |||
|  |                 ), | |||
|  |                 t.options.worldCopyJump && | |||
|  |                   (this._draggable.on('predrag', this._onPreDrag, this), | |||
|  |                   t.on('viewreset', this._onViewReset, this), | |||
|  |                   t.whenReady(this._onViewReset, this)) | |||
|  |             } | |||
|  |             this._draggable.enable() | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             this._draggable.disable() | |||
|  |           }, | |||
|  |           moved: function() { | |||
|  |             return this._draggable && this._draggable._moved | |||
|  |           }, | |||
|  |           _onDragStart: function() { | |||
|  |             var t = this._map | |||
|  |             t._panAnim && t._panAnim.stop(), | |||
|  |               t.fire('movestart').fire('dragstart'), | |||
|  |               t.options.inertia && ((this._positions = []), (this._times = [])) | |||
|  |           }, | |||
|  |           _onDrag: function() { | |||
|  |             if (this._map.options.inertia) { | |||
|  |               var t = (this._lastTime = +new Date()), | |||
|  |                 e = (this._lastPos = this._draggable._newPos) | |||
|  |               this._positions.push(e), | |||
|  |                 this._times.push(t), | |||
|  |                 t - this._times[0] > 200 && | |||
|  |                   (this._positions.shift(), this._times.shift()) | |||
|  |             } | |||
|  |             this._map.fire('move').fire('drag') | |||
|  |           }, | |||
|  |           _onViewReset: function() { | |||
|  |             var t = this._map.getSize()._divideBy(2), | |||
|  |               e = this._map.latLngToLayerPoint([0, 0]) | |||
|  |             ;(this._initialWorldOffset = e.subtract(t).x), | |||
|  |               (this._worldWidth = this._map.project([0, 180]).x) | |||
|  |           }, | |||
|  |           _onPreDrag: function() { | |||
|  |             var t = this._worldWidth, | |||
|  |               e = Math.round(t / 2), | |||
|  |               i = this._initialWorldOffset, | |||
|  |               n = this._draggable._newPos.x, | |||
|  |               o = ((n - e + i) % t) + e - i, | |||
|  |               s = ((n + e + i) % t) - e - i, | |||
|  |               a = Math.abs(o + i) < Math.abs(s + i) ? o : s | |||
|  |             this._draggable._newPos.x = a | |||
|  |           }, | |||
|  |           _onDragEnd: function(t) { | |||
|  |             var e = this._map, | |||
|  |               i = e.options, | |||
|  |               n = +new Date() - this._lastTime, | |||
|  |               s = !i.inertia || n > i.inertiaThreshold || !this._positions[0] | |||
|  |             if ((e.fire('dragend', t), s)) e.fire('moveend') | |||
|  |             else { | |||
|  |               var a = this._lastPos.subtract(this._positions[0]), | |||
|  |                 r = (this._lastTime + n - this._times[0]) / 1e3, | |||
|  |                 h = i.easeLinearity, | |||
|  |                 l = a.multiplyBy(h / r), | |||
|  |                 u = l.distanceTo([0, 0]), | |||
|  |                 c = Math.min(i.inertiaMaxSpeed, u), | |||
|  |                 d = l.multiplyBy(c / u), | |||
|  |                 p = c / (i.inertiaDeceleration * h), | |||
|  |                 _ = d.multiplyBy(-p / 2).round() | |||
|  |               _.x && _.y | |||
|  |                 ? ((_ = e._limitOffset(_, e.options.maxBounds)), | |||
|  |                   o.Util.requestAnimFrame(function() { | |||
|  |                     e.panBy(_, { | |||
|  |                       duration: p, | |||
|  |                       easeLinearity: h, | |||
|  |                       noMoveStart: !0 | |||
|  |                     }) | |||
|  |                   })) | |||
|  |                 : e.fire('moveend') | |||
|  |             } | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook('addHandler', 'dragging', o.Map.Drag), | |||
|  |         o.Map.mergeOptions({ doubleClickZoom: !0 }), | |||
|  |         (o.Map.DoubleClickZoom = o.Handler.extend({ | |||
|  |           addHooks: function() { | |||
|  |             this._map.on('dblclick', this._onDoubleClick, this) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             this._map.off('dblclick', this._onDoubleClick, this) | |||
|  |           }, | |||
|  |           _onDoubleClick: function(t) { | |||
|  |             var e = this._map, | |||
|  |               i = e.getZoom() + (t.originalEvent.shiftKey ? -1 : 1) | |||
|  |             'center' === e.options.doubleClickZoom | |||
|  |               ? e.setZoom(i) | |||
|  |               : e.setZoomAround(t.containerPoint, i) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook( | |||
|  |           'addHandler', | |||
|  |           'doubleClickZoom', | |||
|  |           o.Map.DoubleClickZoom | |||
|  |         ), | |||
|  |         o.Map.mergeOptions({ scrollWheelZoom: !0 }), | |||
|  |         (o.Map.ScrollWheelZoom = o.Handler.extend({ | |||
|  |           addHooks: function() { | |||
|  |             o.DomEvent.on( | |||
|  |               this._map._container, | |||
|  |               'mousewheel', | |||
|  |               this._onWheelScroll, | |||
|  |               this | |||
|  |             ), | |||
|  |               o.DomEvent.on( | |||
|  |                 this._map._container, | |||
|  |                 'MozMousePixelScroll', | |||
|  |                 o.DomEvent.preventDefault | |||
|  |               ), | |||
|  |               (this._delta = 0) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             o.DomEvent.off( | |||
|  |               this._map._container, | |||
|  |               'mousewheel', | |||
|  |               this._onWheelScroll | |||
|  |             ), | |||
|  |               o.DomEvent.off( | |||
|  |                 this._map._container, | |||
|  |                 'MozMousePixelScroll', | |||
|  |                 o.DomEvent.preventDefault | |||
|  |               ) | |||
|  |           }, | |||
|  |           _onWheelScroll: function(t) { | |||
|  |             var e = o.DomEvent.getWheelDelta(t) | |||
|  |             ;(this._delta += e), | |||
|  |               (this._lastMousePos = this._map.mouseEventToContainerPoint(t)), | |||
|  |               this._startTime || (this._startTime = +new Date()) | |||
|  |             var i = Math.max(40 - (+new Date() - this._startTime), 0) | |||
|  |             clearTimeout(this._timer), | |||
|  |               (this._timer = setTimeout(o.bind(this._performZoom, this), i)), | |||
|  |               o.DomEvent.preventDefault(t), | |||
|  |               o.DomEvent.stopPropagation(t) | |||
|  |           }, | |||
|  |           _performZoom: function() { | |||
|  |             var t = this._map, | |||
|  |               e = this._delta, | |||
|  |               i = t.getZoom() | |||
|  |             ;(e = e > 0 ? Math.ceil(e) : Math.floor(e)), | |||
|  |               (e = Math.max(Math.min(e, 4), -4)), | |||
|  |               (e = t._limitZoom(i + e) - i), | |||
|  |               (this._delta = 0), | |||
|  |               (this._startTime = null), | |||
|  |               e && | |||
|  |                 ('center' === t.options.scrollWheelZoom | |||
|  |                   ? t.setZoom(i + e) | |||
|  |                   : t.setZoomAround(this._lastMousePos, i + e)) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook( | |||
|  |           'addHandler', | |||
|  |           'scrollWheelZoom', | |||
|  |           o.Map.ScrollWheelZoom | |||
|  |         ), | |||
|  |         o.extend(o.DomEvent, { | |||
|  |           _touchstart: o.Browser.msPointer | |||
|  |             ? 'MSPointerDown' | |||
|  |             : o.Browser.pointer | |||
|  |             ? 'pointerdown' | |||
|  |             : 'touchstart', | |||
|  |           _touchend: o.Browser.msPointer | |||
|  |             ? 'MSPointerUp' | |||
|  |             : o.Browser.pointer | |||
|  |             ? 'pointerup' | |||
|  |             : 'touchend', | |||
|  |           addDoubleTapListener: function(t, i, n) { | |||
|  |             function s(t) { | |||
|  |               var e | |||
|  |               if ( | |||
|  |                 (o.Browser.pointer | |||
|  |                   ? (_.push(t.pointerId), (e = _.length)) | |||
|  |                   : (e = t.touches.length), | |||
|  |                 !(e > 1)) | |||
|  |               ) { | |||
|  |                 var i = Date.now(), | |||
|  |                   n = i - (r || i) | |||
|  |                 ;(h = t.touches ? t.touches[0] : t), | |||
|  |                   (l = n > 0 && u >= n), | |||
|  |                   (r = i) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             function a(t) { | |||
|  |               if (o.Browser.pointer) { | |||
|  |                 var e = _.indexOf(t.pointerId) | |||
|  |                 if (-1 === e) return | |||
|  |                 _.splice(e, 1) | |||
|  |               } | |||
|  |               if (l) { | |||
|  |                 if (o.Browser.pointer) { | |||
|  |                   var n, | |||
|  |                     s = {} | |||
|  |                   for (var a in h) | |||
|  |                     (n = h[a]), | |||
|  |                       'function' == typeof n ? (s[a] = n.bind(h)) : (s[a] = n) | |||
|  |                   h = s | |||
|  |                 } | |||
|  |                 ;(h.type = 'dblclick'), i(h), (r = null) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             var r, | |||
|  |               h, | |||
|  |               l = !1, | |||
|  |               u = 250, | |||
|  |               c = '_leaflet_', | |||
|  |               d = this._touchstart, | |||
|  |               p = this._touchend, | |||
|  |               _ = [] | |||
|  |             ;(t[c + d + n] = s), (t[c + p + n] = a) | |||
|  |             var m = o.Browser.pointer ? e.documentElement : t | |||
|  |             return ( | |||
|  |               t.addEventListener(d, s, !1), | |||
|  |               m.addEventListener(p, a, !1), | |||
|  |               o.Browser.pointer && | |||
|  |                 m.addEventListener(o.DomEvent.POINTER_CANCEL, a, !1), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeDoubleTapListener: function(t, i) { | |||
|  |             var n = '_leaflet_' | |||
|  |             return ( | |||
|  |               t.removeEventListener( | |||
|  |                 this._touchstart, | |||
|  |                 t[n + this._touchstart + i], | |||
|  |                 !1 | |||
|  |               ), | |||
|  |               (o.Browser.pointer ? e.documentElement : t).removeEventListener( | |||
|  |                 this._touchend, | |||
|  |                 t[n + this._touchend + i], | |||
|  |                 !1 | |||
|  |               ), | |||
|  |               o.Browser.pointer && | |||
|  |                 e.documentElement.removeEventListener( | |||
|  |                   o.DomEvent.POINTER_CANCEL, | |||
|  |                   t[n + this._touchend + i], | |||
|  |                   !1 | |||
|  |                 ), | |||
|  |               this | |||
|  |             ) | |||
|  |           } | |||
|  |         }), | |||
|  |         o.extend(o.DomEvent, { | |||
|  |           POINTER_DOWN: o.Browser.msPointer ? 'MSPointerDown' : 'pointerdown', | |||
|  |           POINTER_MOVE: o.Browser.msPointer ? 'MSPointerMove' : 'pointermove', | |||
|  |           POINTER_UP: o.Browser.msPointer ? 'MSPointerUp' : 'pointerup', | |||
|  |           POINTER_CANCEL: o.Browser.msPointer | |||
|  |             ? 'MSPointerCancel' | |||
|  |             : 'pointercancel', | |||
|  |           _pointers: [], | |||
|  |           _pointerDocumentListener: !1, | |||
|  |           addPointerListener: function(t, e, i, n) { | |||
|  |             switch (e) { | |||
|  |               case 'touchstart': | |||
|  |                 return this.addPointerListenerStart(t, e, i, n) | |||
|  |               case 'touchend': | |||
|  |                 return this.addPointerListenerEnd(t, e, i, n) | |||
|  |               case 'touchmove': | |||
|  |                 return this.addPointerListenerMove(t, e, i, n) | |||
|  |               default: | |||
|  |                 throw 'Unknown touch event type' | |||
|  |             } | |||
|  |           }, | |||
|  |           addPointerListenerStart: function(t, i, n, s) { | |||
|  |             var a = '_leaflet_', | |||
|  |               r = this._pointers, | |||
|  |               h = function(t) { | |||
|  |                 'mouse' !== t.pointerType && | |||
|  |                   t.pointerType !== t.MSPOINTER_TYPE_MOUSE && | |||
|  |                   o.DomEvent.preventDefault(t) | |||
|  |                 for (var e = !1, i = 0; i < r.length; i++) | |||
|  |                   if (r[i].pointerId === t.pointerId) { | |||
|  |                     e = !0 | |||
|  |                     break | |||
|  |                   } | |||
|  |                 e || r.push(t), | |||
|  |                   (t.touches = r.slice()), | |||
|  |                   (t.changedTouches = [t]), | |||
|  |                   n(t) | |||
|  |               } | |||
|  |             if ( | |||
|  |               ((t[a + 'touchstart' + s] = h), | |||
|  |               t.addEventListener(this.POINTER_DOWN, h, !1), | |||
|  |               !this._pointerDocumentListener) | |||
|  |             ) { | |||
|  |               var l = function(t) { | |||
|  |                 for (var e = 0; e < r.length; e++) | |||
|  |                   if (r[e].pointerId === t.pointerId) { | |||
|  |                     r.splice(e, 1) | |||
|  |                     break | |||
|  |                   } | |||
|  |               } | |||
|  |               e.documentElement.addEventListener(this.POINTER_UP, l, !1), | |||
|  |                 e.documentElement.addEventListener(this.POINTER_CANCEL, l, !1), | |||
|  |                 (this._pointerDocumentListener = !0) | |||
|  |             } | |||
|  |             return this | |||
|  |           }, | |||
|  |           addPointerListenerMove: function(t, e, i, n) { | |||
|  |             function o(t) { | |||
|  |               if ( | |||
|  |                 (t.pointerType !== t.MSPOINTER_TYPE_MOUSE && | |||
|  |                   'mouse' !== t.pointerType) || | |||
|  |                 0 !== t.buttons | |||
|  |               ) { | |||
|  |                 for (var e = 0; e < a.length; e++) | |||
|  |                   if (a[e].pointerId === t.pointerId) { | |||
|  |                     a[e] = t | |||
|  |                     break | |||
|  |                   } | |||
|  |                 ;(t.touches = a.slice()), (t.changedTouches = [t]), i(t) | |||
|  |               } | |||
|  |             } | |||
|  | 
 | |||
|  |             var s = '_leaflet_', | |||
|  |               a = this._pointers | |||
|  |             return ( | |||
|  |               (t[s + 'touchmove' + n] = o), | |||
|  |               t.addEventListener(this.POINTER_MOVE, o, !1), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           addPointerListenerEnd: function(t, e, i, n) { | |||
|  |             var o = '_leaflet_', | |||
|  |               s = this._pointers, | |||
|  |               a = function(t) { | |||
|  |                 for (var e = 0; e < s.length; e++) | |||
|  |                   if (s[e].pointerId === t.pointerId) { | |||
|  |                     s.splice(e, 1) | |||
|  |                     break | |||
|  |                   } | |||
|  |                 ;(t.touches = s.slice()), (t.changedTouches = [t]), i(t) | |||
|  |               } | |||
|  |             return ( | |||
|  |               (t[o + 'touchend' + n] = a), | |||
|  |               t.addEventListener(this.POINTER_UP, a, !1), | |||
|  |               t.addEventListener(this.POINTER_CANCEL, a, !1), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removePointerListener: function(t, e, i) { | |||
|  |             var n = '_leaflet_', | |||
|  |               o = t[n + e + i] | |||
|  |             switch (e) { | |||
|  |               case 'touchstart': | |||
|  |                 t.removeEventListener(this.POINTER_DOWN, o, !1) | |||
|  |                 break | |||
|  |               case 'touchmove': | |||
|  |                 t.removeEventListener(this.POINTER_MOVE, o, !1) | |||
|  |                 break | |||
|  |               case 'touchend': | |||
|  |                 t.removeEventListener(this.POINTER_UP, o, !1), | |||
|  |                   t.removeEventListener(this.POINTER_CANCEL, o, !1) | |||
|  |             } | |||
|  |             return this | |||
|  |           } | |||
|  |         }), | |||
|  |         o.Map.mergeOptions({ | |||
|  |           touchZoom: o.Browser.touch && !o.Browser.android23, | |||
|  |           bounceAtZoomLimits: !0 | |||
|  |         }), | |||
|  |         (o.Map.TouchZoom = o.Handler.extend({ | |||
|  |           addHooks: function() { | |||
|  |             o.DomEvent.on( | |||
|  |               this._map._container, | |||
|  |               'touchstart', | |||
|  |               this._onTouchStart, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             o.DomEvent.off( | |||
|  |               this._map._container, | |||
|  |               'touchstart', | |||
|  |               this._onTouchStart, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _onTouchStart: function(t) { | |||
|  |             var i = this._map | |||
|  |             if ( | |||
|  |               t.touches && | |||
|  |               2 === t.touches.length && | |||
|  |               !i._animatingZoom && | |||
|  |               !this._zooming | |||
|  |             ) { | |||
|  |               var n = i.mouseEventToLayerPoint(t.touches[0]), | |||
|  |                 s = i.mouseEventToLayerPoint(t.touches[1]), | |||
|  |                 a = i._getCenterLayerPoint() | |||
|  |               ;(this._startCenter = n.add(s)._divideBy(2)), | |||
|  |                 (this._startDist = n.distanceTo(s)), | |||
|  |                 (this._moved = !1), | |||
|  |                 (this._zooming = !0), | |||
|  |                 (this._centerOffset = a.subtract(this._startCenter)), | |||
|  |                 i._panAnim && i._panAnim.stop(), | |||
|  |                 o.DomEvent.on(e, 'touchmove', this._onTouchMove, this).on( | |||
|  |                   e, | |||
|  |                   'touchend', | |||
|  |                   this._onTouchEnd, | |||
|  |                   this | |||
|  |                 ), | |||
|  |                 o.DomEvent.preventDefault(t) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onTouchMove: function(t) { | |||
|  |             var e = this._map | |||
|  |             if (t.touches && 2 === t.touches.length && this._zooming) { | |||
|  |               var i = e.mouseEventToLayerPoint(t.touches[0]), | |||
|  |                 n = e.mouseEventToLayerPoint(t.touches[1]) | |||
|  |               ;(this._scale = i.distanceTo(n) / this._startDist), | |||
|  |                 (this._delta = i | |||
|  |                   ._add(n) | |||
|  |                   ._divideBy(2) | |||
|  |                   ._subtract(this._startCenter)), | |||
|  |                 1 !== this._scale && | |||
|  |                   (e.options.bounceAtZoomLimits || | |||
|  |                     !( | |||
|  |                       (e.getZoom() === e.getMinZoom() && this._scale < 1) || | |||
|  |                       (e.getZoom() === e.getMaxZoom() && this._scale > 1) | |||
|  |                     )) && | |||
|  |                   (this._moved || | |||
|  |                     (o.DomUtil.addClass(e._mapPane, 'leaflet-touching'), | |||
|  |                     e.fire('movestart').fire('zoomstart'), | |||
|  |                     (this._moved = !0)), | |||
|  |                   o.Util.cancelAnimFrame(this._animRequest), | |||
|  |                   (this._animRequest = o.Util.requestAnimFrame( | |||
|  |                     this._updateOnMove, | |||
|  |                     this, | |||
|  |                     !0, | |||
|  |                     this._map._container | |||
|  |                   )), | |||
|  |                   o.DomEvent.preventDefault(t)) | |||
|  |             } | |||
|  |           }, | |||
|  |           _updateOnMove: function() { | |||
|  |             var t = this._map, | |||
|  |               e = this._getScaleOrigin(), | |||
|  |               i = t.layerPointToLatLng(e), | |||
|  |               n = t.getScaleZoom(this._scale) | |||
|  |             t._animateZoom( | |||
|  |               i, | |||
|  |               n, | |||
|  |               this._startCenter, | |||
|  |               this._scale, | |||
|  |               this._delta, | |||
|  |               !1, | |||
|  |               !0 | |||
|  |             ) | |||
|  |           }, | |||
|  |           _onTouchEnd: function() { | |||
|  |             if (!this._moved || !this._zooming) return void (this._zooming = !1) | |||
|  |             var t = this._map | |||
|  |             ;(this._zooming = !1), | |||
|  |               o.DomUtil.removeClass(t._mapPane, 'leaflet-touching'), | |||
|  |               o.Util.cancelAnimFrame(this._animRequest), | |||
|  |               o.DomEvent.off(e, 'touchmove', this._onTouchMove).off( | |||
|  |                 e, | |||
|  |                 'touchend', | |||
|  |                 this._onTouchEnd | |||
|  |               ) | |||
|  |             var i = this._getScaleOrigin(), | |||
|  |               n = t.layerPointToLatLng(i), | |||
|  |               s = t.getZoom(), | |||
|  |               a = t.getScaleZoom(this._scale) - s, | |||
|  |               r = a > 0 ? Math.ceil(a) : Math.floor(a), | |||
|  |               h = t._limitZoom(s + r), | |||
|  |               l = t.getZoomScale(h) / this._scale | |||
|  |             t._animateZoom(n, h, i, l) | |||
|  |           }, | |||
|  |           _getScaleOrigin: function() { | |||
|  |             var t = this._centerOffset | |||
|  |               .subtract(this._delta) | |||
|  |               .divideBy(this._scale) | |||
|  |             return this._startCenter.add(t) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook('addHandler', 'touchZoom', o.Map.TouchZoom), | |||
|  |         o.Map.mergeOptions({ | |||
|  |           tap: !0, | |||
|  |           tapTolerance: 15 | |||
|  |         }), | |||
|  |         (o.Map.Tap = o.Handler.extend({ | |||
|  |           addHooks: function() { | |||
|  |             o.DomEvent.on( | |||
|  |               this._map._container, | |||
|  |               'touchstart', | |||
|  |               this._onDown, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             o.DomEvent.off( | |||
|  |               this._map._container, | |||
|  |               'touchstart', | |||
|  |               this._onDown, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _onDown: function(t) { | |||
|  |             if (t.touches) { | |||
|  |               if ( | |||
|  |                 (o.DomEvent.preventDefault(t), | |||
|  |                 (this._fireClick = !0), | |||
|  |                 t.touches.length > 1) | |||
|  |               ) | |||
|  |                 return ( | |||
|  |                   (this._fireClick = !1), void clearTimeout(this._holdTimeout) | |||
|  |                 ) | |||
|  |               var i = t.touches[0], | |||
|  |                 n = i.target | |||
|  |               ;(this._startPos = this._newPos = new o.Point( | |||
|  |                 i.clientX, | |||
|  |                 i.clientY | |||
|  |               )), | |||
|  |                 n.tagName && | |||
|  |                   'a' === n.tagName.toLowerCase() && | |||
|  |                   o.DomUtil.addClass(n, 'leaflet-active'), | |||
|  |                 (this._holdTimeout = setTimeout( | |||
|  |                   o.bind(function() { | |||
|  |                     this._isTapValid() && | |||
|  |                       ((this._fireClick = !1), | |||
|  |                       this._onUp(), | |||
|  |                       this._simulateEvent('contextmenu', i)) | |||
|  |                   }, this), | |||
|  |                   1e3 | |||
|  |                 )), | |||
|  |                 o.DomEvent.on(e, 'touchmove', this._onMove, this).on( | |||
|  |                   e, | |||
|  |                   'touchend', | |||
|  |                   this._onUp, | |||
|  |                   this | |||
|  |                 ) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onUp: function(t) { | |||
|  |             if ( | |||
|  |               (clearTimeout(this._holdTimeout), | |||
|  |               o.DomEvent.off(e, 'touchmove', this._onMove, this).off( | |||
|  |                 e, | |||
|  |                 'touchend', | |||
|  |                 this._onUp, | |||
|  |                 this | |||
|  |               ), | |||
|  |               this._fireClick && t && t.changedTouches) | |||
|  |             ) { | |||
|  |               var i = t.changedTouches[0], | |||
|  |                 n = i.target | |||
|  |               n && | |||
|  |                 n.tagName && | |||
|  |                 'a' === n.tagName.toLowerCase() && | |||
|  |                 o.DomUtil.removeClass(n, 'leaflet-active'), | |||
|  |                 this._isTapValid() && this._simulateEvent('click', i) | |||
|  |             } | |||
|  |           }, | |||
|  |           _isTapValid: function() { | |||
|  |             return ( | |||
|  |               this._newPos.distanceTo(this._startPos) <= | |||
|  |               this._map.options.tapTolerance | |||
|  |             ) | |||
|  |           }, | |||
|  |           _onMove: function(t) { | |||
|  |             var e = t.touches[0] | |||
|  |             this._newPos = new o.Point(e.clientX, e.clientY) | |||
|  |           }, | |||
|  |           _simulateEvent: function(i, n) { | |||
|  |             var o = e.createEvent('MouseEvents') | |||
|  |             ;(o._simulated = !0), | |||
|  |               (n.target._simulatedClick = !0), | |||
|  |               o.initMouseEvent( | |||
|  |                 i, | |||
|  |                 !0, | |||
|  |                 !0, | |||
|  |                 t, | |||
|  |                 1, | |||
|  |                 n.screenX, | |||
|  |                 n.screenY, | |||
|  |                 n.clientX, | |||
|  |                 n.clientY, | |||
|  |                 !1, | |||
|  |                 !1, | |||
|  |                 !1, | |||
|  |                 !1, | |||
|  |                 0, | |||
|  |                 null | |||
|  |               ), | |||
|  |               n.target.dispatchEvent(o) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Browser.touch && | |||
|  |           !o.Browser.pointer && | |||
|  |           o.Map.addInitHook('addHandler', 'tap', o.Map.Tap), | |||
|  |         o.Map.mergeOptions({ boxZoom: !0 }), | |||
|  |         (o.Map.BoxZoom = o.Handler.extend({ | |||
|  |           initialize: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               (this._container = t._container), | |||
|  |               (this._pane = t._panes.overlayPane), | |||
|  |               (this._moved = !1) | |||
|  |           }, | |||
|  |           addHooks: function() { | |||
|  |             o.DomEvent.on(this._container, 'mousedown', this._onMouseDown, this) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             o.DomEvent.off(this._container, 'mousedown', this._onMouseDown), | |||
|  |               (this._moved = !1) | |||
|  |           }, | |||
|  |           moved: function() { | |||
|  |             return this._moved | |||
|  |           }, | |||
|  |           _onMouseDown: function(t) { | |||
|  |             return ( | |||
|  |               (this._moved = !1), | |||
|  |               !t.shiftKey || (1 !== t.which && 1 !== t.button) | |||
|  |                 ? !1 | |||
|  |                 : (o.DomUtil.disableTextSelection(), | |||
|  |                   o.DomUtil.disableImageDrag(), | |||
|  |                   (this._startLayerPoint = this._map.mouseEventToLayerPoint(t)), | |||
|  |                   void o.DomEvent.on(e, 'mousemove', this._onMouseMove, this) | |||
|  |                     .on(e, 'mouseup', this._onMouseUp, this) | |||
|  |                     .on(e, 'keydown', this._onKeyDown, this)) | |||
|  |             ) | |||
|  |           }, | |||
|  |           _onMouseMove: function(t) { | |||
|  |             this._moved || | |||
|  |               ((this._box = o.DomUtil.create( | |||
|  |                 'div', | |||
|  |                 'leaflet-zoom-box', | |||
|  |                 this._pane | |||
|  |               )), | |||
|  |               o.DomUtil.setPosition(this._box, this._startLayerPoint), | |||
|  |               (this._container.style.cursor = 'crosshair'), | |||
|  |               this._map.fire('boxzoomstart')) | |||
|  |             var e = this._startLayerPoint, | |||
|  |               i = this._box, | |||
|  |               n = this._map.mouseEventToLayerPoint(t), | |||
|  |               s = n.subtract(e), | |||
|  |               a = new o.Point(Math.min(n.x, e.x), Math.min(n.y, e.y)) | |||
|  |             o.DomUtil.setPosition(i, a), | |||
|  |               (this._moved = !0), | |||
|  |               (i.style.width = Math.max(0, Math.abs(s.x) - 4) + 'px'), | |||
|  |               (i.style.height = Math.max(0, Math.abs(s.y) - 4) + 'px') | |||
|  |           }, | |||
|  |           _finish: function() { | |||
|  |             this._moved && | |||
|  |               (this._pane.removeChild(this._box), | |||
|  |               (this._container.style.cursor = '')), | |||
|  |               o.DomUtil.enableTextSelection(), | |||
|  |               o.DomUtil.enableImageDrag(), | |||
|  |               o.DomEvent.off(e, 'mousemove', this._onMouseMove) | |||
|  |                 .off(e, 'mouseup', this._onMouseUp) | |||
|  |                 .off(e, 'keydown', this._onKeyDown) | |||
|  |           }, | |||
|  |           _onMouseUp: function(t) { | |||
|  |             this._finish() | |||
|  |             var e = this._map, | |||
|  |               i = e.mouseEventToLayerPoint(t) | |||
|  |             if (!this._startLayerPoint.equals(i)) { | |||
|  |               var n = new o.LatLngBounds( | |||
|  |                 e.layerPointToLatLng(this._startLayerPoint), | |||
|  |                 e.layerPointToLatLng(i) | |||
|  |               ) | |||
|  |               e.fitBounds(n), e.fire('boxzoomend', { boxZoomBounds: n }) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onKeyDown: function(t) { | |||
|  |             27 === t.keyCode && this._finish() | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook('addHandler', 'boxZoom', o.Map.BoxZoom), | |||
|  |         o.Map.mergeOptions({ | |||
|  |           keyboard: !0, | |||
|  |           keyboardPanOffset: 80, | |||
|  |           keyboardZoomOffset: 1 | |||
|  |         }), | |||
|  |         (o.Map.Keyboard = o.Handler.extend({ | |||
|  |           keyCodes: { | |||
|  |             left: [37], | |||
|  |             right: [39], | |||
|  |             down: [40], | |||
|  |             up: [38], | |||
|  |             zoomIn: [187, 107, 61, 171], | |||
|  |             zoomOut: [189, 109, 173] | |||
|  |           }, | |||
|  |           initialize: function(t) { | |||
|  |             ;(this._map = t), | |||
|  |               this._setPanOffset(t.options.keyboardPanOffset), | |||
|  |               this._setZoomOffset(t.options.keyboardZoomOffset) | |||
|  |           }, | |||
|  |           addHooks: function() { | |||
|  |             var t = this._map._container | |||
|  |             ;-1 === t.tabIndex && (t.tabIndex = '0'), | |||
|  |               o.DomEvent.on(t, 'focus', this._onFocus, this) | |||
|  |                 .on(t, 'blur', this._onBlur, this) | |||
|  |                 .on(t, 'mousedown', this._onMouseDown, this), | |||
|  |               this._map | |||
|  |                 .on('focus', this._addHooks, this) | |||
|  |                 .on('blur', this._removeHooks, this) | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             this._removeHooks() | |||
|  |             var t = this._map._container | |||
|  |             o.DomEvent.off(t, 'focus', this._onFocus, this) | |||
|  |               .off(t, 'blur', this._onBlur, this) | |||
|  |               .off(t, 'mousedown', this._onMouseDown, this), | |||
|  |               this._map | |||
|  |                 .off('focus', this._addHooks, this) | |||
|  |                 .off('blur', this._removeHooks, this) | |||
|  |           }, | |||
|  |           _onMouseDown: function() { | |||
|  |             if (!this._focused) { | |||
|  |               var i = e.body, | |||
|  |                 n = e.documentElement, | |||
|  |                 o = i.scrollTop || n.scrollTop, | |||
|  |                 s = i.scrollLeft || n.scrollLeft | |||
|  |               this._map._container.focus(), t.scrollTo(s, o) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onFocus: function() { | |||
|  |             ;(this._focused = !0), this._map.fire('focus') | |||
|  |           }, | |||
|  |           _onBlur: function() { | |||
|  |             ;(this._focused = !1), this._map.fire('blur') | |||
|  |           }, | |||
|  |           _setPanOffset: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n = (this._panKeys = {}), | |||
|  |               o = this.keyCodes | |||
|  |             for (e = 0, i = o.left.length; i > e; e++) | |||
|  |               n[o.left[e]] = [-1 * t, 0] | |||
|  |             for (e = 0, i = o.right.length; i > e; e++) n[o.right[e]] = [t, 0] | |||
|  |             for (e = 0, i = o.down.length; i > e; e++) n[o.down[e]] = [0, t] | |||
|  |             for (e = 0, i = o.up.length; i > e; e++) n[o.up[e]] = [0, -1 * t] | |||
|  |           }, | |||
|  |           _setZoomOffset: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n = (this._zoomKeys = {}), | |||
|  |               o = this.keyCodes | |||
|  |             for (e = 0, i = o.zoomIn.length; i > e; e++) n[o.zoomIn[e]] = t | |||
|  |             for (e = 0, i = o.zoomOut.length; i > e; e++) n[o.zoomOut[e]] = -t | |||
|  |           }, | |||
|  |           _addHooks: function() { | |||
|  |             o.DomEvent.on(e, 'keydown', this._onKeyDown, this) | |||
|  |           }, | |||
|  |           _removeHooks: function() { | |||
|  |             o.DomEvent.off(e, 'keydown', this._onKeyDown, this) | |||
|  |           }, | |||
|  |           _onKeyDown: function(t) { | |||
|  |             var e = t.keyCode, | |||
|  |               i = this._map | |||
|  |             if (e in this._panKeys) { | |||
|  |               if (i._panAnim && i._panAnim._inProgress) return | |||
|  |               i.panBy(this._panKeys[e]), | |||
|  |                 i.options.maxBounds && i.panInsideBounds(i.options.maxBounds) | |||
|  |             } else { | |||
|  |               if (!(e in this._zoomKeys)) return | |||
|  |               i.setZoom(i.getZoom() + this._zoomKeys[e]) | |||
|  |             } | |||
|  |             o.DomEvent.stop(t) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.addInitHook('addHandler', 'keyboard', o.Map.Keyboard), | |||
|  |         (o.Handler.MarkerDrag = o.Handler.extend({ | |||
|  |           initialize: function(t) { | |||
|  |             this._marker = t | |||
|  |           }, | |||
|  |           addHooks: function() { | |||
|  |             var t = this._marker._icon | |||
|  |             this._draggable || (this._draggable = new o.Draggable(t, t)), | |||
|  |               this._draggable | |||
|  |                 .on('dragstart', this._onDragStart, this) | |||
|  |                 .on('drag', this._onDrag, this) | |||
|  |                 .on('dragend', this._onDragEnd, this), | |||
|  |               this._draggable.enable(), | |||
|  |               o.DomUtil.addClass(this._marker._icon, 'leaflet-marker-draggable') | |||
|  |           }, | |||
|  |           removeHooks: function() { | |||
|  |             this._draggable | |||
|  |               .off('dragstart', this._onDragStart, this) | |||
|  |               .off('drag', this._onDrag, this) | |||
|  |               .off('dragend', this._onDragEnd, this), | |||
|  |               this._draggable.disable(), | |||
|  |               o.DomUtil.removeClass( | |||
|  |                 this._marker._icon, | |||
|  |                 'leaflet-marker-draggable' | |||
|  |               ) | |||
|  |           }, | |||
|  |           moved: function() { | |||
|  |             return this._draggable && this._draggable._moved | |||
|  |           }, | |||
|  |           _onDragStart: function() { | |||
|  |             this._marker | |||
|  |               .closePopup() | |||
|  |               .fire('movestart') | |||
|  |               .fire('dragstart') | |||
|  |           }, | |||
|  |           _onDrag: function() { | |||
|  |             var t = this._marker, | |||
|  |               e = t._shadow, | |||
|  |               i = o.DomUtil.getPosition(t._icon), | |||
|  |               n = t._map.layerPointToLatLng(i) | |||
|  |             e && o.DomUtil.setPosition(e, i), | |||
|  |               (t._latlng = n), | |||
|  |               t.fire('move', { latlng: n }).fire('drag') | |||
|  |           }, | |||
|  |           _onDragEnd: function(t) { | |||
|  |             this._marker.fire('moveend').fire('dragend', t) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.Control = o.Class.extend({ | |||
|  |           options: { position: 'topright' }, | |||
|  |           initialize: function(t) { | |||
|  |             o.setOptions(this, t) | |||
|  |           }, | |||
|  |           getPosition: function() { | |||
|  |             return this.options.position | |||
|  |           }, | |||
|  |           setPosition: function(t) { | |||
|  |             var e = this._map | |||
|  |             return ( | |||
|  |               e && e.removeControl(this), | |||
|  |               (this.options.position = t), | |||
|  |               e && e.addControl(this), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           getContainer: function() { | |||
|  |             return this._container | |||
|  |           }, | |||
|  |           addTo: function(t) { | |||
|  |             this._map = t | |||
|  |             var e = (this._container = this.onAdd(t)), | |||
|  |               i = this.getPosition(), | |||
|  |               n = t._controlCorners[i] | |||
|  |             return ( | |||
|  |               o.DomUtil.addClass(e, 'leaflet-control'), | |||
|  |               -1 !== i.indexOf('bottom') | |||
|  |                 ? n.insertBefore(e, n.firstChild) | |||
|  |                 : n.appendChild(e), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           removeFrom: function(t) { | |||
|  |             var e = this.getPosition(), | |||
|  |               i = t._controlCorners[e] | |||
|  |             return ( | |||
|  |               i.removeChild(this._container), | |||
|  |               (this._map = null), | |||
|  |               this.onRemove && this.onRemove(t), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _refocusOnMap: function() { | |||
|  |             this._map && this._map.getContainer().focus() | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.control = function(t) { | |||
|  |           return new o.Control(t) | |||
|  |         }), | |||
|  |         o.Map.include({ | |||
|  |           addControl: function(t) { | |||
|  |             return t.addTo(this), this | |||
|  |           }, | |||
|  |           removeControl: function(t) { | |||
|  |             return t.removeFrom(this), this | |||
|  |           }, | |||
|  |           _initControlPos: function() { | |||
|  |             function t(t, s) { | |||
|  |               var a = i + t + ' ' + i + s | |||
|  |               e[t + s] = o.DomUtil.create('div', a, n) | |||
|  |             } | |||
|  | 
 | |||
|  |             var e = (this._controlCorners = {}), | |||
|  |               i = 'leaflet-', | |||
|  |               n = (this._controlContainer = o.DomUtil.create( | |||
|  |                 'div', | |||
|  |                 i + 'control-container', | |||
|  |                 this._container | |||
|  |               )) | |||
|  |             t('top', 'left'), | |||
|  |               t('top', 'right'), | |||
|  |               t('bottom', 'left'), | |||
|  |               t('bottom', 'right') | |||
|  |           }, | |||
|  |           _clearControlPos: function() { | |||
|  |             this._container.removeChild(this._controlContainer) | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.Control.Zoom = o.Control.extend({ | |||
|  |           options: { | |||
|  |             position: 'topleft', | |||
|  |             zoomInText: '+', | |||
|  |             zoomInTitle: '放大', | |||
|  |             zoomOutText: '-', | |||
|  |             zoomOutTitle: '缩小' | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             var e = 'leaflet-control-zoom', | |||
|  |               i = o.DomUtil.create('div', e + ' leaflet-bar') | |||
|  |             return ( | |||
|  |               (this._map = t), | |||
|  |               (this._zoomInButton = this._createButton( | |||
|  |                 this.options.zoomInText, | |||
|  |                 this.options.zoomInTitle, | |||
|  |                 e + '-in', | |||
|  |                 i, | |||
|  |                 this._zoomIn, | |||
|  |                 this | |||
|  |               )), | |||
|  |               (this._zoomOutButton = this._createButton( | |||
|  |                 this.options.zoomOutText, | |||
|  |                 this.options.zoomOutTitle, | |||
|  |                 e + '-out', | |||
|  |                 i, | |||
|  |                 this._zoomOut, | |||
|  |                 this | |||
|  |               )), | |||
|  |               this._updateDisabled(), | |||
|  |               t.on('zoomend zoomlevelschange', this._updateDisabled, this), | |||
|  |               i | |||
|  |             ) | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t.off('zoomend zoomlevelschange', this._updateDisabled, this) | |||
|  |           }, | |||
|  |           _zoomIn: function(t) { | |||
|  |             this._map.zoomIn(t.shiftKey ? 3 : 1) | |||
|  |           }, | |||
|  |           _zoomOut: function(t) { | |||
|  |             this._map.zoomOut(t.shiftKey ? 3 : 1) | |||
|  |           }, | |||
|  |           _createButton: function(t, e, i, n, s, a) { | |||
|  |             var r = o.DomUtil.create('a', i, n) | |||
|  |             ;(r.innerHTML = t), (r.href = '#'), (r.title = e) | |||
|  |             var h = o.DomEvent.stopPropagation | |||
|  |             return ( | |||
|  |               o.DomEvent.on(r, 'click', h) | |||
|  |                 .on(r, 'mousedown', h) | |||
|  |                 .on(r, 'dblclick', h) | |||
|  |                 .on(r, 'click', o.DomEvent.preventDefault) | |||
|  |                 .on(r, 'click', s, a) | |||
|  |                 .on(r, 'click', this._refocusOnMap, a), | |||
|  |               r | |||
|  |             ) | |||
|  |           }, | |||
|  |           _updateDisabled: function() { | |||
|  |             var t = this._map, | |||
|  |               e = 'leaflet-disabled' | |||
|  |             o.DomUtil.removeClass(this._zoomInButton, e), | |||
|  |               o.DomUtil.removeClass(this._zoomOutButton, e), | |||
|  |               t._zoom === t.getMinZoom() && | |||
|  |                 o.DomUtil.addClass(this._zoomOutButton, e), | |||
|  |               t._zoom === t.getMaxZoom() && | |||
|  |                 o.DomUtil.addClass(this._zoomInButton, e) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.mergeOptions({ zoomControl: !0 }), | |||
|  |         o.Map.addInitHook(function() { | |||
|  |           this.options.zoomControl && | |||
|  |             ((this.zoomControl = new o.Control.Zoom()), | |||
|  |             this.addControl(this.zoomControl)) | |||
|  |         }), | |||
|  |         (o.control.zoom = function(t) { | |||
|  |           return new o.Control.Zoom(t) | |||
|  |         }), | |||
|  |         (o.Control.Attribution = o.Control.extend({ | |||
|  |           options: { | |||
|  |             position: 'bottomright', | |||
|  |             prefix: | |||
|  |               '<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>' | |||
|  |           }, | |||
|  |           initialize: function(t) { | |||
|  |             o.setOptions(this, t), (this._attributions = {}) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             ;(this._container = o.DomUtil.create( | |||
|  |               'div', | |||
|  |               'leaflet-control-attribution' | |||
|  |             )), | |||
|  |               o.DomEvent.disableClickPropagation(this._container) | |||
|  |             for (var e in t._layers) | |||
|  |               t._layers[e].getAttribution && | |||
|  |                 this.addAttribution(t._layers[e].getAttribution()) | |||
|  |             return ( | |||
|  |               t | |||
|  |                 .on('layeradd', this._onLayerAdd, this) | |||
|  |                 .on('layerremove', this._onLayerRemove, this), | |||
|  |               this._update(), | |||
|  |               this._container | |||
|  |             ) | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t.off('layeradd', this._onLayerAdd).off( | |||
|  |               'layerremove', | |||
|  |               this._onLayerRemove | |||
|  |             ) | |||
|  |           }, | |||
|  |           setPrefix: function(t) { | |||
|  |             return (this.options.prefix = t), this._update(), this | |||
|  |           }, | |||
|  |           addAttribution: function(t) { | |||
|  |             return t | |||
|  |               ? (this._attributions[t] || (this._attributions[t] = 0), | |||
|  |                 this._attributions[t]++, | |||
|  |                 this._update(), | |||
|  |                 this) | |||
|  |               : void 0 | |||
|  |           }, | |||
|  |           removeAttribution: function(t) { | |||
|  |             return t | |||
|  |               ? (this._attributions[t] && | |||
|  |                   (this._attributions[t]--, this._update()), | |||
|  |                 this) | |||
|  |               : void 0 | |||
|  |           }, | |||
|  |           _update: function() { | |||
|  |             if (this._map) { | |||
|  |               var t = [] | |||
|  |               for (var e in this._attributions) | |||
|  |                 this._attributions[e] && t.push(e) | |||
|  |               var i = [] | |||
|  |               this.options.prefix && i.push(this.options.prefix), | |||
|  |                 t.length && i.push(t.join(', ')), | |||
|  |                 (this._container.innerHTML = i.join(' | ')) | |||
|  |             } | |||
|  |           }, | |||
|  |           _onLayerAdd: function(t) { | |||
|  |             t.layer.getAttribution && | |||
|  |               this.addAttribution(t.layer.getAttribution()) | |||
|  |           }, | |||
|  |           _onLayerRemove: function(t) { | |||
|  |             t.layer.getAttribution && | |||
|  |               this.removeAttribution(t.layer.getAttribution()) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.mergeOptions({ attributionControl: !0 }), | |||
|  |         o.Map.addInitHook(function() { | |||
|  |           this.options.attributionControl && | |||
|  |             (this.attributionControl = new o.Control.Attribution().addTo(this)) | |||
|  |         }), | |||
|  |         (o.control.attribution = function(t) { | |||
|  |           return new o.Control.Attribution(t) | |||
|  |         }), | |||
|  |         (o.Control.Scale = o.Control.extend({ | |||
|  |           options: { | |||
|  |             position: 'bottomleft', | |||
|  |             maxWidth: 100, | |||
|  |             metric: !0, | |||
|  |             imperial: !0, | |||
|  |             updateWhenIdle: !1 | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             this._map = t | |||
|  |             var e = 'leaflet-control-scale', | |||
|  |               i = o.DomUtil.create('div', e), | |||
|  |               n = this.options | |||
|  |             return ( | |||
|  |               this._addScales(n, e, i), | |||
|  |               t.on(n.updateWhenIdle ? 'moveend' : 'move', this._update, this), | |||
|  |               t.whenReady(this._update, this), | |||
|  |               i | |||
|  |             ) | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t.off( | |||
|  |               this.options.updateWhenIdle ? 'moveend' : 'move', | |||
|  |               this._update, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _addScales: function(t, e, i) { | |||
|  |             t.metric && | |||
|  |               (this._mScale = o.DomUtil.create('div', e + '-line', i)), | |||
|  |               t.imperial && | |||
|  |                 (this._iScale = o.DomUtil.create('div', e + '-line', i)) | |||
|  |           }, | |||
|  |           _update: function() { | |||
|  |             var t = this._map.getBounds(), | |||
|  |               e = t.getCenter().lat, | |||
|  |               i = 6378137 * Math.PI * Math.cos((e * Math.PI) / 180), | |||
|  |               n = (i * (t.getNorthEast().lng - t.getSouthWest().lng)) / 180, | |||
|  |               o = this._map.getSize(), | |||
|  |               s = this.options, | |||
|  |               a = 0 | |||
|  |             o.x > 0 && (a = n * (s.maxWidth / o.x)), this._updateScales(s, a) | |||
|  |           }, | |||
|  |           _updateScales: function(t, e) { | |||
|  |             t.metric && e && this._updateMetric(e), | |||
|  |               t.imperial && e && this._updateImperial(e) | |||
|  |           }, | |||
|  |           _updateMetric: function(t) { | |||
|  |             var e = this._getRoundNum(t) | |||
|  |             ;(this._mScale.style.width = this._getScaleWidth(e / t) + 'px'), | |||
|  |               (this._mScale.innerHTML = 1e3 > e ? e + ' m' : e / 1e3 + ' km') | |||
|  |           }, | |||
|  |           _updateImperial: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n, | |||
|  |               o = 3.2808399 * t, | |||
|  |               s = this._iScale | |||
|  |             o > 5280 | |||
|  |               ? ((e = o / 5280), | |||
|  |                 (i = this._getRoundNum(e)), | |||
|  |                 (s.style.width = this._getScaleWidth(i / e) + 'px'), | |||
|  |                 (s.innerHTML = i + ' mi')) | |||
|  |               : ((n = this._getRoundNum(o)), | |||
|  |                 (s.style.width = this._getScaleWidth(n / o) + 'px'), | |||
|  |                 (s.innerHTML = n + ' ft')) | |||
|  |           }, | |||
|  |           _getScaleWidth: function(t) { | |||
|  |             return Math.round(this.options.maxWidth * t) - 10 | |||
|  |           }, | |||
|  |           _getRoundNum: function(t) { | |||
|  |             var e = Math.pow(10, (Math.floor(t) + '').length - 1), | |||
|  |               i = t / e | |||
|  |             return ( | |||
|  |               (i = i >= 10 ? 10 : i >= 5 ? 5 : i >= 3 ? 3 : i >= 2 ? 2 : 1), | |||
|  |               e * i | |||
|  |             ) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.control.scale = function(t) { | |||
|  |           return new o.Control.Scale(t) | |||
|  |         }), | |||
|  |         (o.Control.Layers = o.Control.extend({ | |||
|  |           options: { collapsed: !0, position: 'topright', autoZIndex: !0 }, | |||
|  |           initialize: function(t, e, i) { | |||
|  |             o.setOptions(this, i), | |||
|  |               (this._layers = {}), | |||
|  |               (this._lastZIndex = 0), | |||
|  |               (this._handlingClick = !1) | |||
|  |             for (var n in t) this._addLayer(t[n], n) | |||
|  |             for (n in e) this._addLayer(e[n], n, !0) | |||
|  |           }, | |||
|  |           onAdd: function(t) { | |||
|  |             return ( | |||
|  |               this._initLayout(), | |||
|  |               this._update(), | |||
|  |               t | |||
|  |                 .on('layeradd', this._onLayerChange, this) | |||
|  |                 .on('layerremove', this._onLayerChange, this), | |||
|  |               this._container | |||
|  |             ) | |||
|  |           }, | |||
|  |           onRemove: function(t) { | |||
|  |             t.off('layeradd', this._onLayerChange, this).off( | |||
|  |               'layerremove', | |||
|  |               this._onLayerChange, | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           addBaseLayer: function(t, e) { | |||
|  |             return this._addLayer(t, e), this._update(), this | |||
|  |           }, | |||
|  |           addOverlay: function(t, e) { | |||
|  |             return this._addLayer(t, e, !0), this._update(), this | |||
|  |           }, | |||
|  |           removeLayer: function(t) { | |||
|  |             var e = o.stamp(t) | |||
|  |             return delete this._layers[e], this._update(), this | |||
|  |           }, | |||
|  |           _initLayout: function() { | |||
|  |             var t = 'leaflet-control-layers', | |||
|  |               e = (this._container = o.DomUtil.create('div', t)) | |||
|  |             e.setAttribute('aria-haspopup', !0), | |||
|  |               o.Browser.touch | |||
|  |                 ? o.DomEvent.on(e, 'click', o.DomEvent.stopPropagation) | |||
|  |                 : o.DomEvent.disableClickPropagation( | |||
|  |                     e | |||
|  |                   ).disableScrollPropagation(e) | |||
|  |             var i = (this._form = o.DomUtil.create('form', t + '-list')) | |||
|  |             if (this.options.collapsed) { | |||
|  |               o.Browser.android || | |||
|  |                 o.DomEvent.on(e, 'mouseover', this._expand, this).on( | |||
|  |                   e, | |||
|  |                   'mouseout', | |||
|  |                   this._collapse, | |||
|  |                   this | |||
|  |                 ) | |||
|  |               var n = (this._layersLink = o.DomUtil.create( | |||
|  |                 'a', | |||
|  |                 t + '-toggle', | |||
|  |                 e | |||
|  |               )) | |||
|  |               ;(n.href = '#'), | |||
|  |                 (n.title = 'Layers'), | |||
|  |                 o.Browser.touch | |||
|  |                   ? o.DomEvent.on(n, 'click', o.DomEvent.stop).on( | |||
|  |                       n, | |||
|  |                       'click', | |||
|  |                       this._expand, | |||
|  |                       this | |||
|  |                     ) | |||
|  |                   : o.DomEvent.on(n, 'focus', this._expand, this), | |||
|  |                 o.DomEvent.on( | |||
|  |                   i, | |||
|  |                   'click', | |||
|  |                   function() { | |||
|  |                     setTimeout(o.bind(this._onInputClick, this), 0) | |||
|  |                   }, | |||
|  |                   this | |||
|  |                 ), | |||
|  |                 this._map.on('click', this._collapse, this) | |||
|  |             } else this._expand() | |||
|  |             ;(this._baseLayersList = o.DomUtil.create('div', t + '-base', i)), | |||
|  |               (this._separator = o.DomUtil.create('div', t + '-separator', i)), | |||
|  |               (this._overlaysList = o.DomUtil.create( | |||
|  |                 'div', | |||
|  |                 t + '-overlays', | |||
|  |                 i | |||
|  |               )), | |||
|  |               e.appendChild(i) | |||
|  |           }, | |||
|  |           _addLayer: function(t, e, i) { | |||
|  |             var n = o.stamp(t) | |||
|  |             ;(this._layers[n] = { | |||
|  |               layer: t, | |||
|  |               name: e, | |||
|  |               overlay: i | |||
|  |             }), | |||
|  |               this.options.autoZIndex && | |||
|  |                 t.setZIndex && | |||
|  |                 (this._lastZIndex++, t.setZIndex(this._lastZIndex)) | |||
|  |           }, | |||
|  |           _update: function() { | |||
|  |             if (this._container) { | |||
|  |               ;(this._baseLayersList.innerHTML = ''), | |||
|  |                 (this._overlaysList.innerHTML = '') | |||
|  |               var t, | |||
|  |                 e, | |||
|  |                 i = !1, | |||
|  |                 n = !1 | |||
|  |               for (t in this._layers) | |||
|  |                 (e = this._layers[t]), | |||
|  |                   this._addItem(e), | |||
|  |                   (n = n || e.overlay), | |||
|  |                   (i = i || !e.overlay) | |||
|  |               this._separator.style.display = n && i ? '' : 'none' | |||
|  |             } | |||
|  |           }, | |||
|  |           _onLayerChange: function(t) { | |||
|  |             var e = this._layers[o.stamp(t.layer)] | |||
|  |             if (e) { | |||
|  |               this._handlingClick || this._update() | |||
|  |               var i = e.overlay | |||
|  |                 ? 'layeradd' === t.type | |||
|  |                   ? 'overlayadd' | |||
|  |                   : 'overlayremove' | |||
|  |                 : 'layeradd' === t.type | |||
|  |                 ? 'baselayerchange' | |||
|  |                 : null | |||
|  |               i && this._map.fire(i, e) | |||
|  |             } | |||
|  |           }, | |||
|  |           _createRadioElement: function(t, i) { | |||
|  |             var n = | |||
|  |               '<input type="radio" class="leaflet-control-layers-selector" name="' + | |||
|  |               t + | |||
|  |               '"' | |||
|  |             i && (n += ' checked="checked"'), (n += '/>') | |||
|  |             var o = e.createElement('div') | |||
|  |             return (o.innerHTML = n), o.firstChild | |||
|  |           }, | |||
|  |           _addItem: function(t) { | |||
|  |             var i, | |||
|  |               n = e.createElement('label'), | |||
|  |               s = this._map.hasLayer(t.layer) | |||
|  |             t.overlay | |||
|  |               ? ((i = e.createElement('input')), | |||
|  |                 (i.type = 'checkbox'), | |||
|  |                 (i.className = 'leaflet-control-layers-selector'), | |||
|  |                 (i.defaultChecked = s)) | |||
|  |               : (i = this._createRadioElement('leaflet-base-layers', s)), | |||
|  |               (i.layerId = o.stamp(t.layer)), | |||
|  |               o.DomEvent.on(i, 'click', this._onInputClick, this) | |||
|  |             var a = e.createElement('span') | |||
|  |             ;(a.innerHTML = ' ' + t.name), n.appendChild(i), n.appendChild(a) | |||
|  |             var r = t.overlay ? this._overlaysList : this._baseLayersList | |||
|  |             return r.appendChild(n), n | |||
|  |           }, | |||
|  |           _onInputClick: function() { | |||
|  |             var t, | |||
|  |               e, | |||
|  |               i, | |||
|  |               n = this._form.getElementsByTagName('input'), | |||
|  |               o = n.length | |||
|  |             for (this._handlingClick = !0, t = 0; o > t; t++) | |||
|  |               (e = n[t]), | |||
|  |                 (i = this._layers[e.layerId]), | |||
|  |                 e.checked && !this._map.hasLayer(i.layer) | |||
|  |                   ? this._map.addLayer(i.layer) | |||
|  |                   : !e.checked && | |||
|  |                     this._map.hasLayer(i.layer) && | |||
|  |                     this._map.removeLayer(i.layer) | |||
|  |             ;(this._handlingClick = !1), this._refocusOnMap() | |||
|  |           }, | |||
|  |           _expand: function() { | |||
|  |             o.DomUtil.addClass( | |||
|  |               this._container, | |||
|  |               'leaflet-control-layers-expanded' | |||
|  |             ) | |||
|  |           }, | |||
|  |           _collapse: function() { | |||
|  |             this._container.className = this._container.className.replace( | |||
|  |               ' leaflet-control-layers-expanded', | |||
|  |               '' | |||
|  |             ) | |||
|  |           } | |||
|  |         })), | |||
|  |         (o.control.layers = function(t, e, i) { | |||
|  |           return new o.Control.Layers(t, e, i) | |||
|  |         }), | |||
|  |         (o.PosAnimation = o.Class.extend({ | |||
|  |           includes: o.Mixin.Events, | |||
|  |           run: function(t, e, i, n) { | |||
|  |             this.stop(), | |||
|  |               (this._el = t), | |||
|  |               (this._inProgress = !0), | |||
|  |               (this._newPos = e), | |||
|  |               this.fire('start'), | |||
|  |               (t.style[o.DomUtil.TRANSITION] = | |||
|  |                 'all ' + | |||
|  |                 (i || 0.25) + | |||
|  |                 's cubic-bezier(0,0,' + | |||
|  |                 (n || 0.5) + | |||
|  |                 ',1)'), | |||
|  |               o.DomEvent.on( | |||
|  |                 t, | |||
|  |                 o.DomUtil.TRANSITION_END, | |||
|  |                 this._onTransitionEnd, | |||
|  |                 this | |||
|  |               ), | |||
|  |               o.DomUtil.setPosition(t, e), | |||
|  |               o.Util.falseFn(t.offsetWidth), | |||
|  |               (this._stepTimer = setInterval(o.bind(this._onStep, this), 50)) | |||
|  |           }, | |||
|  |           stop: function() { | |||
|  |             this._inProgress && | |||
|  |               (o.DomUtil.setPosition(this._el, this._getPos()), | |||
|  |               this._onTransitionEnd(), | |||
|  |               o.Util.falseFn(this._el.offsetWidth)) | |||
|  |           }, | |||
|  |           _onStep: function() { | |||
|  |             var t = this._getPos() | |||
|  |             return t | |||
|  |               ? ((this._el._leaflet_pos = t), void this.fire('step')) | |||
|  |               : void this._onTransitionEnd() | |||
|  |           }, | |||
|  |           _transformRe: /([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/, | |||
|  |           _getPos: function() { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n, | |||
|  |               s = this._el, | |||
|  |               a = t.getComputedStyle(s) | |||
|  |             if (o.Browser.any3d) { | |||
|  |               if (((n = a[o.DomUtil.TRANSFORM].match(this._transformRe)), !n)) | |||
|  |                 return | |||
|  |               ;(e = parseFloat(n[1])), (i = parseFloat(n[2])) | |||
|  |             } else (e = parseFloat(a.left)), (i = parseFloat(a.top)) | |||
|  |             return new o.Point(e, i, !0) | |||
|  |           }, | |||
|  |           _onTransitionEnd: function() { | |||
|  |             o.DomEvent.off( | |||
|  |               this._el, | |||
|  |               o.DomUtil.TRANSITION_END, | |||
|  |               this._onTransitionEnd, | |||
|  |               this | |||
|  |             ), | |||
|  |               this._inProgress && | |||
|  |                 ((this._inProgress = !1), | |||
|  |                 (this._el.style[o.DomUtil.TRANSITION] = ''), | |||
|  |                 (this._el._leaflet_pos = this._newPos), | |||
|  |                 clearInterval(this._stepTimer), | |||
|  |                 this.fire('step').fire('end')) | |||
|  |           } | |||
|  |         })), | |||
|  |         o.Map.include({ | |||
|  |           setView: function(t, e, n) { | |||
|  |             if ( | |||
|  |               ((e = e === i ? this._zoom : this._limitZoom(e)), | |||
|  |               (t = this._limitCenter(o.latLng(t), e, this.options.maxBounds)), | |||
|  |               (n = n || {}), | |||
|  |               this._panAnim && this._panAnim.stop(), | |||
|  |               this._loaded && !n.reset && n !== !0) | |||
|  |             ) { | |||
|  |               n.animate !== i && | |||
|  |                 ((n.zoom = o.extend({ animate: n.animate }, n.zoom)), | |||
|  |                 (n.pan = o.extend({ animate: n.animate }, n.pan))) | |||
|  |               var s = | |||
|  |                 this._zoom !== e | |||
|  |                   ? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, n.zoom) | |||
|  |                   : this._tryAnimatedPan(t, n.pan) | |||
|  |               if (s) return clearTimeout(this._sizeTimer), this | |||
|  |             } | |||
|  |             return this._resetView(t, e), this | |||
|  |           }, | |||
|  |           panBy: function(t, e) { | |||
|  |             if (((t = o.point(t).round()), (e = e || {}), !t.x && !t.y)) | |||
|  |               return this | |||
|  |             if ( | |||
|  |               (this._panAnim || | |||
|  |                 ((this._panAnim = new o.PosAnimation()), | |||
|  |                 this._panAnim.on( | |||
|  |                   { | |||
|  |                     step: this._onPanTransitionStep, | |||
|  |                     end: this._onPanTransitionEnd | |||
|  |                   }, | |||
|  |                   this | |||
|  |                 )), | |||
|  |               e.noMoveStart || this.fire('movestart'), | |||
|  |               e.animate !== !1) | |||
|  |             ) { | |||
|  |               o.DomUtil.addClass(this._mapPane, 'leaflet-pan-anim') | |||
|  |               var i = this._getMapPanePos().subtract(t) | |||
|  |               this._panAnim.run( | |||
|  |                 this._mapPane, | |||
|  |                 i, | |||
|  |                 e.duration || 0.25, | |||
|  |                 e.easeLinearity | |||
|  |               ) | |||
|  |             } else this._rawPanBy(t), this.fire('move').fire('moveend') | |||
|  |             return this | |||
|  |           }, | |||
|  |           _onPanTransitionStep: function() { | |||
|  |             this.fire('move') | |||
|  |           }, | |||
|  |           _onPanTransitionEnd: function() { | |||
|  |             o.DomUtil.removeClass(this._mapPane, 'leaflet-pan-anim'), | |||
|  |               this.fire('moveend') | |||
|  |           }, | |||
|  |           _tryAnimatedPan: function(t, e) { | |||
|  |             var i = this._getCenterOffset(t)._floor() | |||
|  |             return (e && e.animate) === !0 || this.getSize().contains(i) | |||
|  |               ? (this.panBy(i, e), !0) | |||
|  |               : !1 | |||
|  |           } | |||
|  |         }), | |||
|  |         (o.PosAnimation = o.DomUtil.TRANSITION | |||
|  |           ? o.PosAnimation | |||
|  |           : o.PosAnimation.extend({ | |||
|  |               run: function(t, e, i, n) { | |||
|  |                 this.stop(), | |||
|  |                   (this._el = t), | |||
|  |                   (this._inProgress = !0), | |||
|  |                   (this._duration = i || 0.25), | |||
|  |                   (this._easeOutPower = 1 / Math.max(n || 0.5, 0.2)), | |||
|  |                   (this._startPos = o.DomUtil.getPosition(t)), | |||
|  |                   (this._offset = e.subtract(this._startPos)), | |||
|  |                   (this._startTime = +new Date()), | |||
|  |                   this.fire('start'), | |||
|  |                   this._animate() | |||
|  |               }, | |||
|  |               stop: function() { | |||
|  |                 this._inProgress && (this._step(), this._complete()) | |||
|  |               }, | |||
|  |               _animate: function() { | |||
|  |                 ;(this._animId = o.Util.requestAnimFrame(this._animate, this)), | |||
|  |                   this._step() | |||
|  |               }, | |||
|  |               _step: function() { | |||
|  |                 var t = +new Date() - this._startTime, | |||
|  |                   e = 1e3 * this._duration | |||
|  |                 e > t | |||
|  |                   ? this._runFrame(this._easeOut(t / e)) | |||
|  |                   : (this._runFrame(1), this._complete()) | |||
|  |               }, | |||
|  |               _runFrame: function(t) { | |||
|  |                 var e = this._startPos.add(this._offset.multiplyBy(t)) | |||
|  |                 o.DomUtil.setPosition(this._el, e), this.fire('step') | |||
|  |               }, | |||
|  |               _complete: function() { | |||
|  |                 o.Util.cancelAnimFrame(this._animId), | |||
|  |                   (this._inProgress = !1), | |||
|  |                   this.fire('end') | |||
|  |               }, | |||
|  |               _easeOut: function(t) { | |||
|  |                 return 1 - Math.pow(1 - t, this._easeOutPower) | |||
|  |               } | |||
|  |             })), | |||
|  |         o.Map.mergeOptions({ | |||
|  |           zoomAnimation: !0, | |||
|  |           zoomAnimationThreshold: 4 | |||
|  |         }), | |||
|  |         o.DomUtil.TRANSITION && | |||
|  |           o.Map.addInitHook(function() { | |||
|  |             ;(this._zoomAnimated = | |||
|  |               this.options.zoomAnimation && | |||
|  |               o.DomUtil.TRANSITION && | |||
|  |               o.Browser.any3d && | |||
|  |               !o.Browser.android23 && | |||
|  |               !o.Browser.mobileOpera), | |||
|  |               this._zoomAnimated && | |||
|  |                 o.DomEvent.on( | |||
|  |                   this._mapPane, | |||
|  |                   o.DomUtil.TRANSITION_END, | |||
|  |                   this._catchTransitionEnd, | |||
|  |                   this | |||
|  |                 ) | |||
|  |           }), | |||
|  |         o.Map.include( | |||
|  |           o.DomUtil.TRANSITION | |||
|  |             ? { | |||
|  |                 _catchTransitionEnd: function(t) { | |||
|  |                   this._animatingZoom && | |||
|  |                     t.propertyName.indexOf('transform') >= 0 && | |||
|  |                     this._onZoomTransitionEnd() | |||
|  |                 }, | |||
|  |                 _nothingToAnimate: function() { | |||
|  |                   return !this._container.getElementsByClassName( | |||
|  |                     'leaflet-zoom-animated' | |||
|  |                   ).length | |||
|  |                 }, | |||
|  |                 _tryAnimatedZoom: function(t, e, i) { | |||
|  |                   if (this._animatingZoom) return !0 | |||
|  |                   if ( | |||
|  |                     ((i = i || {}), | |||
|  |                     !this._zoomAnimated || | |||
|  |                       i.animate === !1 || | |||
|  |                       this._nothingToAnimate() || | |||
|  |                       Math.abs(e - this._zoom) > | |||
|  |                         this.options.zoomAnimationThreshold) | |||
|  |                   ) | |||
|  |                     return !1 | |||
|  |                   var n = this.getZoomScale(e), | |||
|  |                     o = this._getCenterOffset(t)._divideBy(1 - 1 / n), | |||
|  |                     s = this._getCenterLayerPoint()._add(o) | |||
|  |                   return i.animate === !0 || this.getSize().contains(o) | |||
|  |                     ? (this.fire('movestart').fire('zoomstart'), | |||
|  |                       this._animateZoom(t, e, s, n, null, !0), | |||
|  |                       !0) | |||
|  |                     : !1 | |||
|  |                 }, | |||
|  |                 _animateZoom: function(t, e, i, n, s, a, r) { | |||
|  |                   r || (this._animatingZoom = !0), | |||
|  |                     o.DomUtil.addClass(this._mapPane, 'leaflet-zoom-anim'), | |||
|  |                     (this._animateToCenter = t), | |||
|  |                     (this._animateToZoom = e), | |||
|  |                     o.Draggable && (o.Draggable._disabled = !0), | |||
|  |                     o.Util.requestAnimFrame(function() { | |||
|  |                       this.fire('zoomanim', { | |||
|  |                         center: t, | |||
|  |                         zoom: e, | |||
|  |                         origin: i, | |||
|  |                         scale: n, | |||
|  |                         delta: s, | |||
|  |                         backwards: a | |||
|  |                       }), | |||
|  |                         setTimeout(o.bind(this._onZoomTransitionEnd, this), 250) | |||
|  |                     }, this) | |||
|  |                 }, | |||
|  |                 _onZoomTransitionEnd: function() { | |||
|  |                   this._animatingZoom && | |||
|  |                     ((this._animatingZoom = !1), | |||
|  |                     o.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim'), | |||
|  |                     o.Util.requestAnimFrame(function() { | |||
|  |                       this._resetView( | |||
|  |                         this._animateToCenter, | |||
|  |                         this._animateToZoom, | |||
|  |                         !0, | |||
|  |                         !0 | |||
|  |                       ), | |||
|  |                         o.Draggable && (o.Draggable._disabled = !1) | |||
|  |                     }, this)) | |||
|  |                 } | |||
|  |               } | |||
|  |             : {} | |||
|  |         ), | |||
|  |         o.TileLayer.include({ | |||
|  |           _animateZoom: function(t) { | |||
|  |             this._animating || ((this._animating = !0), this._prepareBgBuffer()) | |||
|  |             var e = this._bgBuffer, | |||
|  |               i = o.DomUtil.TRANSFORM, | |||
|  |               n = t.delta ? o.DomUtil.getTranslateString(t.delta) : e.style[i], | |||
|  |               s = o.DomUtil.getScaleString(t.scale, t.origin) | |||
|  |             e.style[i] = t.backwards ? s + ' ' + n : n + ' ' + s | |||
|  |           }, | |||
|  |           _endZoomAnim: function() { | |||
|  |             var t = this._tileContainer, | |||
|  |               e = this._bgBuffer | |||
|  |             ;(t.style.visibility = ''), | |||
|  |               t.parentNode.appendChild(t), | |||
|  |               o.Util.falseFn(e.offsetWidth) | |||
|  |             var i = this._map.getZoom() | |||
|  |             ;(i > this.options.maxZoom || i < this.options.minZoom) && | |||
|  |               this._clearBgBuffer(), | |||
|  |               (this._animating = !1) | |||
|  |           }, | |||
|  |           _clearBgBuffer: function() { | |||
|  |             var t = this._map | |||
|  |             !t || | |||
|  |               t._animatingZoom || | |||
|  |               t.touchZoom._zooming || | |||
|  |               ((this._bgBuffer.innerHTML = ''), | |||
|  |               (this._bgBuffer.style[o.DomUtil.TRANSFORM] = '')) | |||
|  |           }, | |||
|  |           _prepareBgBuffer: function() { | |||
|  |             var t = this._tileContainer, | |||
|  |               e = this._bgBuffer, | |||
|  |               i = this._getLoadedTilesPercentage(e), | |||
|  |               n = this._getLoadedTilesPercentage(t) | |||
|  |             return e && i > 0.5 && 0.5 > n | |||
|  |               ? ((t.style.visibility = 'hidden'), | |||
|  |                 void this._stopLoadingImages(t)) | |||
|  |               : ((e.style.visibility = 'hidden'), | |||
|  |                 (e.style[o.DomUtil.TRANSFORM] = ''), | |||
|  |                 (this._tileContainer = e), | |||
|  |                 (e = this._bgBuffer = t), | |||
|  |                 this._stopLoadingImages(e), | |||
|  |                 void clearTimeout(this._clearBgBufferTimer)) | |||
|  |           }, | |||
|  |           _getLoadedTilesPercentage: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n = t.getElementsByTagName('img'), | |||
|  |               o = 0 | |||
|  |             for (e = 0, i = n.length; i > e; e++) n[e].complete && o++ | |||
|  |             return o / i | |||
|  |           }, | |||
|  |           _stopLoadingImages: function(t) { | |||
|  |             var e, | |||
|  |               i, | |||
|  |               n, | |||
|  |               s = Array.prototype.slice.call(t.getElementsByTagName('img')) | |||
|  |             for (e = 0, i = s.length; i > e; e++) | |||
|  |               (n = s[e]), | |||
|  |                 n.complete || | |||
|  |                   ((n.onload = o.Util.falseFn), | |||
|  |                   (n.onerror = o.Util.falseFn), | |||
|  |                   (n.src = o.Util.emptyImageUrl), | |||
|  |                   n.parentNode.removeChild(n)) | |||
|  |           } | |||
|  |         }), | |||
|  |         o.Map.include({ | |||
|  |           _defaultLocateOptions: { | |||
|  |             watch: !1, | |||
|  |             setView: !1, | |||
|  |             maxZoom: 1 / 0, | |||
|  |             timeout: 1e4, | |||
|  |             maximumAge: 0, | |||
|  |             enableHighAccuracy: !1 | |||
|  |           }, | |||
|  |           locate: function(t) { | |||
|  |             if ( | |||
|  |               ((t = this._locateOptions = o.extend( | |||
|  |                 this._defaultLocateOptions, | |||
|  |                 t | |||
|  |               )), | |||
|  |               !navigator.geolocation) | |||
|  |             ) | |||
|  |               return ( | |||
|  |                 this._handleGeolocationError({ | |||
|  |                   code: 0, | |||
|  |                   message: 'Geolocation not supported.' | |||
|  |                 }), | |||
|  |                 this | |||
|  |               ) | |||
|  |             var e = o.bind(this._handleGeolocationResponse, this), | |||
|  |               i = o.bind(this._handleGeolocationError, this) | |||
|  |             return ( | |||
|  |               t.watch | |||
|  |                 ? (this._locationWatchId = navigator.geolocation.watchPosition( | |||
|  |                     e, | |||
|  |                     i, | |||
|  |                     t | |||
|  |                   )) | |||
|  |                 : navigator.geolocation.getCurrentPosition(e, i, t), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           stopLocate: function() { | |||
|  |             return ( | |||
|  |               navigator.geolocation && | |||
|  |                 navigator.geolocation.clearWatch(this._locationWatchId), | |||
|  |               this._locateOptions && (this._locateOptions.setView = !1), | |||
|  |               this | |||
|  |             ) | |||
|  |           }, | |||
|  |           _handleGeolocationError: function(t) { | |||
|  |             var e = t.code, | |||
|  |               i = | |||
|  |                 t.message || | |||
|  |                 (1 === e | |||
|  |                   ? 'permission denied' | |||
|  |                   : 2 === e | |||
|  |                   ? 'position unavailable' | |||
|  |                   : 'timeout') | |||
|  |             this._locateOptions.setView && !this._loaded && this.fitWorld(), | |||
|  |               this.fire('locationerror', { | |||
|  |                 code: e, | |||
|  |                 message: 'Geolocation error: ' + i + '.' | |||
|  |               }) | |||
|  |           }, | |||
|  |           _handleGeolocationResponse: function(t) { | |||
|  |             var e = t.coords.latitude, | |||
|  |               i = t.coords.longitude, | |||
|  |               n = new o.LatLng(e, i), | |||
|  |               s = (180 * t.coords.accuracy) / 40075017, | |||
|  |               a = s / Math.cos(o.LatLng.DEG_TO_RAD * e), | |||
|  |               r = o.latLngBounds([e - s, i - a], [e + s, i + a]), | |||
|  |               h = this._locateOptions | |||
|  |             if (h.setView) { | |||
|  |               var l = Math.min(this.getBoundsZoom(r), h.maxZoom) | |||
|  |               this.setView(n, l) | |||
|  |             } | |||
|  |             var u = { latlng: n, bounds: r, timestamp: t.timestamp } | |||
|  |             for (var c in t.coords) | |||
|  |               'number' == typeof t.coords[c] && (u[c] = t.coords[c]) | |||
|  |             this.fire('locationfound', u) | |||
|  |           } | |||
|  |         }) | |||
|  |     })(window, document) | |||
|  |     define('ViewModels/DistanceLegendViewModel', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/DeveloperError', | |||
|  |       'Cesium/Core/EllipsoidGeodesic', | |||
|  |       'Cesium/Core/Cartesian2', | |||
|  |       'Cesium/Core/getTimestamp', | |||
|  |       'Cesium/Core/EventHelper', | |||
|  |       'KnockoutES5', | |||
|  |       'Core/loadView', | |||
|  |       'leaflet' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       DeveloperError, | |||
|  |       EllipsoidGeodesic, | |||
|  |       Cartesian2, | |||
|  |       getTimestamp, | |||
|  |       EventHelper, | |||
|  |       Knockout, | |||
|  |       loadView, | |||
|  |       leaflet | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var DistanceLegendViewModel = function(options) { | |||
|  |         if (!defined(options) || !defined(options.terria)) { | |||
|  |           throw new DeveloperError('options.terria is required.') | |||
|  |         } | |||
|  |         this.terria = options.terria | |||
|  |         this._removeSubscription = undefined | |||
|  |         this._lastLegendUpdate = undefined | |||
|  |         this.eventHelper = new EventHelper() | |||
|  |         this.distanceLabel = undefined | |||
|  |         this.barWidth = undefined | |||
|  |         Knockout.track(this, ['distanceLabel', 'barWidth']) | |||
|  |         this.eventHelper.add( | |||
|  |           this.terria.afterWidgetChanged, | |||
|  |           function() { | |||
|  |             if (defined(this._removeSubscription)) { | |||
|  |               this._removeSubscription() | |||
|  |               this._removeSubscription = undefined | |||
|  |             } | |||
|  |           }, | |||
|  |           this | |||
|  |         ) | |||
|  |         var that = this | |||
|  | 
 | |||
|  |         function addUpdateSubscription() { | |||
|  |           if (defined(that.terria)) { | |||
|  |             var scene = that.terria.scene | |||
|  |             that._removeSubscription = scene.postRender.addEventListener( | |||
|  |               function() { | |||
|  |                 updateDistanceLegendCesium(this, scene) | |||
|  |               }, | |||
|  |               that | |||
|  |             ) | |||
|  |           } else if (defined(that.terria.leaflet)) { | |||
|  |             var map = that.terria.leaflet.map | |||
|  |             var potentialChangeCallback = function potentialChangeCallback() { | |||
|  |               updateDistanceLegendLeaflet(that, map) | |||
|  |             } | |||
|  |             that._removeSubscription = function() { | |||
|  |               map.off('zoomend', potentialChangeCallback) | |||
|  |               map.off('moveend', potentialChangeCallback) | |||
|  |             } | |||
|  |             map.on('zoomend', potentialChangeCallback) | |||
|  |             map.on('moveend', potentialChangeCallback) | |||
|  |             updateDistanceLegendLeaflet(that, map) | |||
|  |           } | |||
|  |         } | |||
|  | 
 | |||
|  |         addUpdateSubscription() | |||
|  |         this.eventHelper.add( | |||
|  |           this.terria.afterWidgetChanged, | |||
|  |           function() { | |||
|  |             addUpdateSubscription() | |||
|  |           }, | |||
|  |           this | |||
|  |         ) | |||
|  |       } | |||
|  |       DistanceLegendViewModel.prototype.destroy = function() { | |||
|  |         this.eventHelper.removeAll() | |||
|  |       } | |||
|  |       DistanceLegendViewModel.prototype.show = function(container) { | |||
|  |         var testing = | |||
|  |           '<div class="distance-legend" data-bind="visible: distanceLabel && barWidth">' + | |||
|  |           '<div class="distance-legend-label" data-bind="text: distanceLabel"></div>' + | |||
|  |           '<div class="distance-legend-scale-bar" data-bind="style: { width: barWidth + \'px\', left: (5 + (125 - barWidth) / 2) + \'px\' }"></div>' + | |||
|  |           '</div>' | |||
|  |         loadView(testing, container, this) | |||
|  |       } | |||
|  |       DistanceLegendViewModel.create = function(options) { | |||
|  |         var result = new DistanceLegendViewModel(options) | |||
|  |         result.show(options.container) | |||
|  |         return result | |||
|  |       } | |||
|  |       var geodesic = new EllipsoidGeodesic() | |||
|  |       var distances = [ | |||
|  |         1, | |||
|  |         2, | |||
|  |         3, | |||
|  |         5, | |||
|  |         10, | |||
|  |         20, | |||
|  |         30, | |||
|  |         50, | |||
|  |         100, | |||
|  |         200, | |||
|  |         300, | |||
|  |         500, | |||
|  |         1e3, | |||
|  |         2e3, | |||
|  |         3e3, | |||
|  |         5e3, | |||
|  |         1e4, | |||
|  |         2e4, | |||
|  |         3e4, | |||
|  |         5e4, | |||
|  |         1e5, | |||
|  |         2e5, | |||
|  |         3e5, | |||
|  |         5e5, | |||
|  |         1e6, | |||
|  |         2e6, | |||
|  |         3e6, | |||
|  |         5e6, | |||
|  |         1e7, | |||
|  |         2e7, | |||
|  |         3e7, | |||
|  |         5e7 | |||
|  |       ] | |||
|  | 
 | |||
|  |       function updateDistanceLegendCesium(viewModel, scene) { | |||
|  |         var now = getTimestamp() | |||
|  |         if (now < viewModel._lastLegendUpdate + 250) { | |||
|  |           return | |||
|  |         } | |||
|  |         viewModel._lastLegendUpdate = now | |||
|  |         var width = scene.canvas.clientWidth | |||
|  |         var height = scene.canvas.clientHeight | |||
|  |         var left = scene.camera.getPickRay( | |||
|  |           new Cartesian2((width / 2) | 0, height - 1) | |||
|  |         ) | |||
|  |         var right = scene.camera.getPickRay( | |||
|  |           new Cartesian2((1 + width / 2) | 0, height - 1) | |||
|  |         ) | |||
|  |         var globe = scene.globe | |||
|  |         var leftPosition = globe.pick(left, scene) | |||
|  |         var rightPosition = globe.pick(right, scene) | |||
|  |         if (!defined(leftPosition) || !defined(rightPosition)) { | |||
|  |           viewModel.barWidth = undefined | |||
|  |           viewModel.distanceLabel = undefined | |||
|  |           return | |||
|  |         } | |||
|  |         var leftCartographic = globe.ellipsoid.cartesianToCartographic( | |||
|  |           leftPosition | |||
|  |         ) | |||
|  |         var rightCartographic = globe.ellipsoid.cartesianToCartographic( | |||
|  |           rightPosition | |||
|  |         ) | |||
|  |         geodesic.setEndPoints(leftCartographic, rightCartographic) | |||
|  |         var pixelDistance = geodesic.surfaceDistance | |||
|  |         var maxBarWidth = 100 | |||
|  |         var distance | |||
|  |         for (var i = distances.length - 1; !defined(distance) && i >= 0; --i) { | |||
|  |           if (distances[i] / pixelDistance < maxBarWidth) { | |||
|  |             distance = distances[i] | |||
|  |           } | |||
|  |         } | |||
|  |         if (defined(distance)) { | |||
|  |           var label | |||
|  |           if (distance >= 1e3) { | |||
|  |             label = (distance / 1e3).toString() + ' km' | |||
|  |           } else { | |||
|  |             label = distance.toString() + ' m' | |||
|  |           } | |||
|  |           viewModel.barWidth = (distance / pixelDistance) | 0 | |||
|  |           viewModel.distanceLabel = label | |||
|  |         } else { | |||
|  |           viewModel.barWidth = undefined | |||
|  |           viewModel.distanceLabel = undefined | |||
|  |         } | |||
|  |       } | |||
|  | 
 | |||
|  |       function updateDistanceLegendLeaflet(viewModel, map) { | |||
|  |         var halfHeight = map.getSize().y / 2 | |||
|  |         var maxPixelWidth = 100 | |||
|  |         var maxMeters = map | |||
|  |           .containerPointToLatLng([0, halfHeight]) | |||
|  |           .distanceTo(map.containerPointToLatLng([maxPixelWidth, halfHeight])) | |||
|  |         var meters = leaflet.control.scale()._getRoundNum(maxMeters) | |||
|  |         var label = meters < 1e3 ? meters + ' m' : meters / 1e3 + ' km' | |||
|  |         viewModel.barWidth = (meters / maxMeters) * maxPixelWidth | |||
|  |         viewModel.distanceLabel = label | |||
|  |       } | |||
|  | 
 | |||
|  |       return DistanceLegendViewModel | |||
|  |     }) | |||
|  |     define('ViewModels/UserInterfaceControl', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/defineProperties', | |||
|  |       'Cesium/Core/DeveloperError', | |||
|  |       'KnockoutES5' | |||
|  |     ], function(defined, defineProperties, DeveloperError, Knockout) { | |||
|  |       'use strict' | |||
|  |       var UserInterfaceControl = function(terria) { | |||
|  |         if (!defined(terria)) { | |||
|  |           throw new DeveloperError('terria is required') | |||
|  |         } | |||
|  |         this._terria = terria | |||
|  |         this.name = 'Unnamed Control' | |||
|  |         this.text = undefined | |||
|  |         this.svgIcon = undefined | |||
|  |         this.svgHeight = undefined | |||
|  |         this.svgWidth = undefined | |||
|  |         this.cssClass = undefined | |||
|  |         this.isActive = false | |||
|  |         Knockout.track(this, [ | |||
|  |           'name', | |||
|  |           'svgIcon', | |||
|  |           'svgHeight', | |||
|  |           'svgWidth', | |||
|  |           'cssClass', | |||
|  |           'isActive' | |||
|  |         ]) | |||
|  |       } | |||
|  |       Object.defineProperties(UserInterfaceControl.prototype, { | |||
|  |         terria: { | |||
|  |           get: function() { | |||
|  |             return this._terria | |||
|  |           } | |||
|  |         }, | |||
|  |         hasText: { | |||
|  |           get: function() { | |||
|  |             return defined(this.text) && typeof this.text === 'string' | |||
|  |           } | |||
|  |         } | |||
|  |       }) | |||
|  |       UserInterfaceControl.prototype.activate = function() { | |||
|  |         throw new DeveloperError( | |||
|  |           'activate must be implemented in the derived class.' | |||
|  |         ) | |||
|  |       } | |||
|  |       return UserInterfaceControl | |||
|  |     }) | |||
|  |     define('ViewModels/NavigationControl', [ | |||
|  |       'ViewModels/UserInterfaceControl' | |||
|  |     ], function(UserInterfaceControl) { | |||
|  |       'use strict' | |||
|  |       var NavigationControl = function(terria) { | |||
|  |         UserInterfaceControl.apply(this, arguments) | |||
|  |       } | |||
|  |       NavigationControl.prototype = Object.create( | |||
|  |         UserInterfaceControl.prototype | |||
|  |       ) | |||
|  |       return NavigationControl | |||
|  |     }) | |||
|  |     define('SvgPaths/svgReset', [], function() { | |||
|  |       'use strict' | |||
|  |       return 'M 7.5,0 C 3.375,0 0,3.375 0,7.5 0,11.625 3.375,15 7.5,15 c 3.46875,0 6.375,-2.4375 7.21875,-5.625 l -1.96875,0 C 12,11.53125 9.9375,13.125 7.5,13.125 4.40625,13.125 1.875,10.59375 1.875,7.5 1.875,4.40625 4.40625,1.875 7.5,1.875 c 1.59375,0 2.90625,0.65625 3.9375,1.6875 l -3,3 6.5625,0 L 15,0 12.75,2.25 C 11.4375,0.84375 9.5625,0 7.5,0 z' | |||
|  |     }) | |||
|  |     define('ViewModels/ResetViewNavigationControl', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Scene/Camera', | |||
|  |       'Cesium/Core/Rectangle', | |||
|  |       'Cesium/Core/Cartographic', | |||
|  |       'ViewModels/NavigationControl', | |||
|  |       'SvgPaths/svgReset' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       Camera, | |||
|  |       Rectangle, | |||
|  |       Cartographic, | |||
|  |       NavigationControl, | |||
|  |       svgReset | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var ResetViewNavigationControl = function(terria) { | |||
|  |         NavigationControl.apply(this, arguments) | |||
|  |         this.name = '重置' | |||
|  |         this.svgIcon = svgReset | |||
|  |         this.svgHeight = 15 | |||
|  |         this.svgWidth = 15 | |||
|  |         this.cssClass = 'navigation-control-icon-reset' | |||
|  |       } | |||
|  |       ResetViewNavigationControl.prototype = Object.create( | |||
|  |         NavigationControl.prototype | |||
|  |       ) | |||
|  |       ResetViewNavigationControl.prototype.resetView = function() { | |||
|  |         var scene = this.terria.scene | |||
|  |         var sscc = scene.screenSpaceCameraController | |||
|  |         if (!sscc.enableInputs) { | |||
|  |           return | |||
|  |         } | |||
|  |         this.isActive = true | |||
|  |         var camera = scene.camera | |||
|  |         if (defined(this.terria.trackedEntity)) { | |||
|  |           var trackedEntity = this.terria.trackedEntity | |||
|  |           this.terria.trackedEntity = undefined | |||
|  |           this.terria.trackedEntity = trackedEntity | |||
|  |         } else { | |||
|  |           if (this.terria.options && this.terria.options.defaultResetView) { | |||
|  |             if ( | |||
|  |               this.terria.options.defaultResetView && | |||
|  |               this.terria.options.defaultResetView instanceof Cartographic | |||
|  |             ) { | |||
|  |               camera.flyTo({ | |||
|  |                 destination: scene.globe.ellipsoid.cartographicToCartesian( | |||
|  |                   this.terria.options.defaultResetView | |||
|  |                 ) | |||
|  |               }) | |||
|  |             } else if ( | |||
|  |               this.terria.options.defaultResetView && | |||
|  |               this.terria.options.defaultResetView instanceof Rectangle | |||
|  |             ) { | |||
|  |               try { | |||
|  |                 Rectangle.validate(this.terria.options.defaultResetView) | |||
|  |                 camera.flyTo({ | |||
|  |                   destination: this.terria.options.defaultResetView | |||
|  |                 }) | |||
|  |               } catch (e) { | |||
|  |                 console.log( | |||
|  |                   'Cesium-navigation/ResetViewNavigationControl:   options.defaultResetView Cesium rectangle is  invalid!' | |||
|  |                 ) | |||
|  |               } | |||
|  |             } | |||
|  |             // } else if (this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE) {
 | |||
|  |             //   let destination = this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE.destination
 | |||
|  |             //   let orientation = this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE.orientation
 | |||
|  |             //   camera.flyTo({
 | |||
|  |             //     destination: Cesium.Cartesian3.fromDegrees(destination.lng, destination.lat, destination.alt),
 | |||
|  |             //     orientation: {
 | |||
|  |             //       heading: Cesium.Math.toRadians(orientation.heading || 0),
 | |||
|  |             //       pitch: Cesium.Math.toRadians(orientation.pitch || 0),
 | |||
|  |             //       roll: Cesium.Math.toRadians(orientation.roll || 0)
 | |||
|  |             //     },
 | |||
|  |             //     duration: 1
 | |||
|  |             //   })
 | |||
|  |           } else if (typeof camera.flyHome === 'function') { | |||
|  |             camera.flyHome(1) | |||
|  |           } else { | |||
|  |             camera.flyTo({ | |||
|  |               destination: Camera.DEFAULT_VIEW_RECTANGLE, | |||
|  |               duration: 1 | |||
|  |             }) | |||
|  |           } | |||
|  |         } | |||
|  |         this.isActive = false | |||
|  |       } | |||
|  |       ResetViewNavigationControl.prototype.activate = function() { | |||
|  |         this.resetView() | |||
|  |       } | |||
|  |       return ResetViewNavigationControl | |||
|  |     }) | |||
|  |     define('Core/Utils', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/Ray', | |||
|  |       'Cesium/Core/Cartesian3', | |||
|  |       'Cesium/Core/Cartographic', | |||
|  |       'Cesium/Core/ReferenceFrame', | |||
|  |       'Cesium/Scene/SceneMode' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       Ray, | |||
|  |       Cartesian3, | |||
|  |       Cartographic, | |||
|  |       ReferenceFrame, | |||
|  |       SceneMode | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var Utils = {} | |||
|  |       var unprojectedScratch = new Cartographic() | |||
|  |       var rayScratch = new Ray() | |||
|  |       Utils.getCameraFocus = function(terria, inWorldCoordinates, result) { | |||
|  |         var scene = terria.scene | |||
|  |         var camera = scene.camera | |||
|  |         if (scene.mode == SceneMode.MORPHING) { | |||
|  |           return undefined | |||
|  |         } | |||
|  |         if (!defined(result)) { | |||
|  |           result = new Cartesian3() | |||
|  |         } | |||
|  |         if (defined(terria.trackedEntity)) { | |||
|  |           result = terria.trackedEntity.position.getValue( | |||
|  |             terria.clock.currentTime, | |||
|  |             result | |||
|  |           ) | |||
|  |         } else { | |||
|  |           rayScratch.origin = camera.positionWC | |||
|  |           rayScratch.direction = camera.directionWC | |||
|  |           result = scene.globe.pick(rayScratch, scene, result) | |||
|  |         } | |||
|  |         if (!defined(result)) { | |||
|  |           return undefined | |||
|  |         } | |||
|  |         if ( | |||
|  |           scene.mode == SceneMode.SCENE2D || | |||
|  |           scene.mode == SceneMode.COLUMBUS_VIEW | |||
|  |         ) { | |||
|  |           result = camera.worldToCameraCoordinatesPoint(result, result) | |||
|  |           if (inWorldCoordinates) { | |||
|  |             result = scene.globe.ellipsoid.cartographicToCartesian( | |||
|  |               scene.mapProjection.unproject(result, unprojectedScratch), | |||
|  |               result | |||
|  |             ) | |||
|  |           } | |||
|  |         } else { | |||
|  |           if (!inWorldCoordinates) { | |||
|  |             result = camera.worldToCameraCoordinatesPoint(result, result) | |||
|  |           } | |||
|  |         } | |||
|  |         return result | |||
|  |       } | |||
|  |       return Utils | |||
|  |     }) | |||
|  |     define('ViewModels/ZoomNavigationControl', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/Ray', | |||
|  |       'Cesium/Core/IntersectionTests', | |||
|  |       'Cesium/Core/Cartesian3', | |||
|  |       'Cesium/Scene/SceneMode', | |||
|  |       'ViewModels/NavigationControl', | |||
|  |       'Core/Utils' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       Ray, | |||
|  |       IntersectionTests, | |||
|  |       Cartesian3, | |||
|  |       SceneMode, | |||
|  |       NavigationControl, | |||
|  |       Utils | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var ZoomNavigationControl = function(terria, zoomIn) { | |||
|  |         NavigationControl.apply(this, arguments) | |||
|  |         this.name = zoomIn | |||
|  |         this.text = zoomIn == '放大' ? '+' : '-' | |||
|  |         this.cssClass = | |||
|  |           'navigation-control-icon-zoom-' + (zoomIn == '缩小' ? 'in' : 'out') | |||
|  |         this.relativeAmount = 2 | |||
|  |         if (zoomIn == '放大') { | |||
|  |           this.relativeAmount = 1 / this.relativeAmount | |||
|  |         } | |||
|  |       } | |||
|  |       ZoomNavigationControl.prototype.relativeAmount = 1 | |||
|  |       ZoomNavigationControl.prototype = Object.create( | |||
|  |         NavigationControl.prototype | |||
|  |       ) | |||
|  |       ZoomNavigationControl.prototype.activate = function() { | |||
|  |         this.zoom(this.relativeAmount) | |||
|  |       } | |||
|  |       var cartesian3Scratch = new Cartesian3() | |||
|  |       ZoomNavigationControl.prototype.zoom = function(relativeAmount) { | |||
|  |         this.isActive = true | |||
|  |         if (defined(this.terria)) { | |||
|  |           var scene = this.terria.scene | |||
|  |           var sscc = scene.screenSpaceCameraController | |||
|  |           if (!sscc.enableInputs || !sscc.enableZoom) { | |||
|  |             return | |||
|  |           } | |||
|  |           var camera = scene.camera | |||
|  |           var orientation | |||
|  |           switch (scene.mode) { | |||
|  |             case SceneMode.MORPHING: | |||
|  |               break | |||
|  |             case SceneMode.SCENE2D: | |||
|  |               camera.zoomIn( | |||
|  |                 camera.positionCartographic.height * (1 - this.relativeAmount) | |||
|  |               ) | |||
|  |               break | |||
|  |             default: | |||
|  |               var focus | |||
|  |               if (defined(this.terria.trackedEntity)) { | |||
|  |                 focus = new Cartesian3() | |||
|  |               } else { | |||
|  |                 focus = Utils.getCameraFocus(this.terria, false) | |||
|  |               } | |||
|  |               if (!defined(focus)) { | |||
|  |                 var ray = new Ray( | |||
|  |                   camera.worldToCameraCoordinatesPoint( | |||
|  |                     scene.globe.ellipsoid.cartographicToCartesian( | |||
|  |                       camera.positionCartographic | |||
|  |                     ) | |||
|  |                   ), | |||
|  |                   camera.directionWC | |||
|  |                 ) | |||
|  |                 focus = IntersectionTests.grazingAltitudeLocation( | |||
|  |                   ray, | |||
|  |                   scene.globe.ellipsoid | |||
|  |                 ) | |||
|  |                 orientation = { | |||
|  |                   heading: camera.heading, | |||
|  |                   pitch: camera.pitch, | |||
|  |                   roll: camera.roll | |||
|  |                 } | |||
|  |               } else { | |||
|  |                 orientation = { direction: camera.direction, up: camera.up } | |||
|  |               } | |||
|  |               var direction = Cartesian3.subtract( | |||
|  |                 camera.position, | |||
|  |                 focus, | |||
|  |                 cartesian3Scratch | |||
|  |               ) | |||
|  |               var movementVector = Cartesian3.multiplyByScalar( | |||
|  |                 direction, | |||
|  |                 relativeAmount, | |||
|  |                 direction | |||
|  |               ) | |||
|  |               var endPosition = Cartesian3.add(focus, movementVector, focus) | |||
|  |               if ( | |||
|  |                 defined(this.terria.trackedEntity) || | |||
|  |                 scene.mode == SceneMode.COLUMBUS_VIEW | |||
|  |               ) { | |||
|  |                 camera.position = endPosition | |||
|  |               } else { | |||
|  |                 camera.flyTo({ | |||
|  |                   destination: endPosition, | |||
|  |                   orientation: orientation, | |||
|  |                   duration: 0.5, | |||
|  |                   convert: false | |||
|  |                 }) | |||
|  |               } | |||
|  |           } | |||
|  |         } | |||
|  |         this.isActive = false | |||
|  |       } | |||
|  |       return ZoomNavigationControl | |||
|  |     }) | |||
|  |     define('SvgPaths/svgCompassOuterRing', [], function() { | |||
|  |       'use strict' | |||
|  |       return 'm 66.5625,0 0,15.15625 3.71875,0 0,-10.40625 5.5,10.40625 4.375,0 0,-15.15625 -3.71875,0 0,10.40625 L 70.9375,0 66.5625,0 z M 72.5,20.21875 c -28.867432,0 -52.28125,23.407738 -52.28125,52.28125 0,28.87351 23.413818,52.3125 52.28125,52.3125 28.86743,0 52.28125,-23.43899 52.28125,-52.3125 0,-28.873512 -23.41382,-52.28125 -52.28125,-52.28125 z m 0,1.75 c 13.842515,0 26.368948,5.558092 35.5,14.5625 l -11.03125,11 0.625,0.625 11.03125,-11 c 8.9199,9.108762 14.4375,21.579143 14.4375,35.34375 0,13.764606 -5.5176,26.22729 -14.4375,35.34375 l -11.03125,-11 -0.625,0.625 11.03125,11 c -9.130866,9.01087 -21.658601,14.59375 -35.5,14.59375 -13.801622,0 -26.321058,-5.53481 -35.4375,-14.5 l 11.125,-11.09375 c 6.277989,6.12179 14.857796,9.90625 24.3125,9.90625 19.241896,0 34.875,-15.629154 34.875,-34.875 0,-19.245847 -15.633104,-34.84375 -34.875,-34.84375 -9.454704,0 -18.034511,3.760884 -24.3125,9.875 L 37.0625,36.4375 C 46.179178,27.478444 58.696991,21.96875 72.5,21.96875 z m -0.875,0.84375 0,13.9375 1.75,0 0,-13.9375 -1.75,0 z M 36.46875,37.0625 47.5625,48.15625 C 41.429794,54.436565 37.65625,63.027539 37.65625,72.5 c 0,9.472461 3.773544,18.055746 9.90625,24.34375 L 36.46875,107.9375 c -8.96721,-9.1247 -14.5,-21.624886 -14.5,-35.4375 0,-13.812615 5.53279,-26.320526 14.5,-35.4375 z M 72.5,39.40625 c 18.297686,0 33.125,14.791695 33.125,33.09375 0,18.302054 -14.827314,33.125 -33.125,33.125 -18.297687,0 -33.09375,-14.822946 -33.09375,-33.125 0,-18.302056 14.796063,-33.09375 33.09375,-33.09375 z M 22.84375,71.625 l 0,1.75 13.96875,0 0,-1.75 -13.96875,0 z m 85.5625,0 0,1.75 14,0 0,-1.75 -14,0 z M 71.75,108.25 l 0,13.9375 1.71875,0 0,-13.9375 -1.71875,0 z' | |||
|  |     }) | |||
|  |     define('SvgPaths/svgCompassGyro', [], function() { | |||
|  |       'use strict' | |||
|  |       return 'm 72.71875,54.375 c -0.476702,0 -0.908208,0.245402 -1.21875,0.5625 -0.310542,0.317098 -0.551189,0.701933 -0.78125,1.1875 -0.172018,0.363062 -0.319101,0.791709 -0.46875,1.25 -6.91615,1.075544 -12.313231,6.656514 -13,13.625 -0.327516,0.117495 -0.661877,0.244642 -0.9375,0.375 -0.485434,0.22959 -0.901634,0.471239 -1.21875,0.78125 -0.317116,0.310011 -0.5625,0.742111 -0.5625,1.21875 l 0.03125,0 c 0,0.476639 0.245384,0.877489 0.5625,1.1875 0.317116,0.310011 0.702066,0.58291 1.1875,0.8125 0.35554,0.168155 0.771616,0.32165 1.21875,0.46875 1.370803,6.10004 6.420817,10.834127 12.71875,11.8125 0.146999,0.447079 0.30025,0.863113 0.46875,1.21875 0.230061,0.485567 0.470708,0.870402 0.78125,1.1875 0.310542,0.317098 0.742048,0.5625 1.21875,0.5625 0.476702,0 0.876958,-0.245402 1.1875,-0.5625 0.310542,-0.317098 0.582439,-0.701933 0.8125,-1.1875 0.172018,-0.363062 0.319101,-0.791709 0.46875,-1.25 6.249045,-1.017063 11.256351,-5.7184 12.625,-11.78125 0.447134,-0.1471 0.86321,-0.300595 1.21875,-0.46875 0.485434,-0.22959 0.901633,-0.502489 1.21875,-0.8125 0.317117,-0.310011 0.5625,-0.710861 0.5625,-1.1875 l -0.03125,0 c 0,-0.476639 -0.245383,-0.908739 -0.5625,-1.21875 C 89.901633,71.846239 89.516684,71.60459 89.03125,71.375 88.755626,71.244642 88.456123,71.117495 88.125,71 87.439949,64.078341 82.072807,58.503735 75.21875,57.375 c -0.15044,-0.461669 -0.326927,-0.884711 -0.5,-1.25 -0.230061,-0.485567 -0.501958,-0.870402 -0.8125,-1.1875 -0.310542,-0.317098 -0.710798,-0.5625 -1.1875,-0.5625 z m -0.0625,1.40625 c 0.03595,-0.01283 0.05968,0 0.0625,0 0.0056,0 0.04321,-0.02233 0.1875,0.125 0.144288,0.147334 0.34336,0.447188 0.53125,0.84375 0.06385,0.134761 0.123901,0.309578 0.1875,0.46875 -0.320353,-0.01957 -0.643524,-0.0625 -0.96875,-0.0625 -0.289073,0 -0.558569,0.04702 -0.84375,0.0625 C 71.8761,57.059578 71.936151,56.884761 72,56.75 c 0.18789,-0.396562 0.355712,-0.696416 0.5,-0.84375 0.07214,-0.07367 0.120304,-0.112167 0.15625,-0.125 z m 0,2.40625 c 0.448007,0 0.906196,0.05436 1.34375,0.09375 0.177011,0.592256 0.347655,1.271044 0.5,2.03125 0.475097,2.370753 0.807525,5.463852 0.9375,8.9375 -0.906869,-0.02852 -1.834463,-0.0625 -2.78125,-0.0625 -0.92298,0 -1.802327,0.03537 -2.6875,0.0625 0.138529,-3.473648 0.493653,-6.566747 0.96875,-8.9375 0.154684,-0.771878 0.320019,-1.463985 0.5,-2.0625 0.405568,-0.03377 0.804291,-0.0625 1.21875,-0.0625 z m -2.71875,0.28125 c -0.129732,0.498888 -0.259782,0.987558 -0.375,1.5625 -0.498513,2.487595 -0.838088,5.693299 -0.96875,9.25 -3.21363,0.15162 -6.119596,0.480068 -8.40625,0.9375 -0.682394,0.136509 -1.275579,0.279657 -1.84375,0.4375 0.799068,-6.135482 5.504716,-11.036454 11.59375,-12.1875 z M 75.5,58.5 c 6.043169,1.18408 10.705093,6.052712 11.5,12.15625 -0.569435,-0.155806 -1.200273,-0.302525 -1.875,-0.4375 -2.262525,-0.452605 -5.108535,-0.783809 -8.28125,-0.9375 -0.130662,-3.556701 -0.470237,-6.762405 -0.96875,-9.25 C 75.761959,59.467174 75.626981,58.990925 75.5,58.5 z m -2.84375,12.09375 c 0.959338,0 1.895843,0.03282 2.8125,0.0625 C 75.48165,71.267751 75.5,71.871028 75.5,72.5 c 0,1.228616 -0.01449,2.438313 -0.0625,3.59375 -0.897358,0.0284 -1.811972,0.0625 -2.75,0.0625 -0.927373,0 -1.831062,-0.03473 -2.71875,-0.0625 -0.05109,-1.155437 -0.0625,-2.365134 -0.0625,-3.59375 0,-0.628972 0.01741,-1.232249 0.03125,-1.84375 0.895269,-0.02827 1.783025,-0.0625 2.71875,-0.0625 z M 68.5625,70.6875 c -0.01243,0.60601 -0.03125,1.189946 -0.03125,1.8125 0,1.22431 0.01541,2.407837 0.0625,3.5625 -3.125243,-0.150329 -5.92077,-0.471558 -8.09375,-0.90625 -0.784983,-0.157031 -1.511491,-0.316471 -2.125,-0.5 -0.107878,-0.704096 -0.1875,-1.422089 -0.1875,-2.15625 0,-0.115714 0.02849,-0.228688 0.03125,-0.34375 0.643106,-0.20284 1.389577,-0.390377 2.25,-0.5625 2.166953,-0.433487 4.97905,-0.75541 8.09375,-0.90625 z m 8.3125,0.03125 c 3.075121,0.15271 5.824455,0.446046 7.96875,0.875 0.857478,0.171534 1.630962,0.360416 2.28125,0.5625 0.0027,0.114659 0,0.228443 0,0.34375 0,0.735827 -0.07914,1.450633 -0.1875,2.15625 -0.598568,0.180148 -1.29077,0.34562 -2.0625,0.5 -2.158064,0.431708 -4.932088,0.754666 -8.03125,0.90625 0.04709,-1.15466 | |||
|  |     }) | |||
|  |     define('SvgPaths/svgCompassRotationMarker', [], function() { | |||
|  |       'use strict' | |||
|  |       return 'M 72.46875,22.03125 C 59.505873,22.050338 46.521615,27.004287 36.6875,36.875 L 47.84375,47.96875 C 61.521556,34.240041 83.442603,34.227389 97.125,47.90625 l 11.125,-11.125 C 98.401629,26.935424 85.431627,22.012162 72.46875,22.03125 z' | |||
|  |     }) | |||
|  |     define('ViewModels/NavigationViewModel', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/Math', | |||
|  |       'Cesium/Core/getTimestamp', | |||
|  |       'Cesium/Core/EventHelper', | |||
|  |       'Cesium/Core/Transforms', | |||
|  |       'Cesium/Scene/SceneMode', | |||
|  |       'Cesium/Core/Cartesian2', | |||
|  |       'Cesium/Core/Cartesian3', | |||
|  |       'Cesium/Core/Matrix4', | |||
|  |       'Cesium/Core/BoundingSphere', | |||
|  |       'Cesium/Core/HeadingPitchRange', | |||
|  |       'KnockoutES5', | |||
|  |       'Core/loadView', | |||
|  |       'ViewModels/ResetViewNavigationControl', | |||
|  |       'ViewModels/ZoomNavigationControl', | |||
|  |       'SvgPaths/svgCompassOuterRing', | |||
|  |       'SvgPaths/svgCompassGyro', | |||
|  |       'SvgPaths/svgCompassRotationMarker', | |||
|  |       'Core/Utils' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       CesiumMath, | |||
|  |       getTimestamp, | |||
|  |       EventHelper, | |||
|  |       Transforms, | |||
|  |       SceneMode, | |||
|  |       Cartesian2, | |||
|  |       Cartesian3, | |||
|  |       Matrix4, | |||
|  |       BoundingSphere, | |||
|  |       HeadingPitchRange, | |||
|  |       Knockout, | |||
|  |       loadView, | |||
|  |       ResetViewNavigationControl, | |||
|  |       ZoomNavigationControl, | |||
|  |       svgCompassOuterRing, | |||
|  |       svgCompassGyro, | |||
|  |       svgCompassRotationMarker, | |||
|  |       Utils | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var NavigationViewModel = function(options) { | |||
|  |         this.terria = options.terria | |||
|  |         this.eventHelper = new EventHelper() | |||
|  |         this.controls = options.controls | |||
|  |         if (!defined(this.controls)) { | |||
|  |           this.controls = [ | |||
|  |             new ZoomNavigationControl(this.terria, '放大'), | |||
|  |             new ResetViewNavigationControl(this.terria), | |||
|  |             new ZoomNavigationControl(this.terria, '缩小') | |||
|  |           ] | |||
|  |         } | |||
|  |         this.svgCompassOuterRing = svgCompassOuterRing | |||
|  |         this.svgCompassGyro = svgCompassGyro | |||
|  |         this.svgCompassRotationMarker = svgCompassRotationMarker | |||
|  |         this.showCompass = defined(this.terria) | |||
|  |         this.heading = this.showCompass ? this.terria.scene.camera.heading : 0 | |||
|  |         this.isOrbiting = false | |||
|  |         this.orbitCursorAngle = 0 | |||
|  |         this.orbitCursorOpacity = 0 | |||
|  |         this.orbitLastTimestamp = 0 | |||
|  |         this.orbitFrame = undefined | |||
|  |         this.orbitIsLook = false | |||
|  |         this.orbitMouseMoveFunction = undefined | |||
|  |         this.orbitMouseUpFunction = undefined | |||
|  |         this.isRotating = false | |||
|  |         this.rotateInitialCursorAngle = undefined | |||
|  |         this.rotateFrame = undefined | |||
|  |         this.rotateIsLook = false | |||
|  |         this.rotateMouseMoveFunction = undefined | |||
|  |         this.rotateMouseUpFunction = undefined | |||
|  |         this._unsubcribeFromPostRender = undefined | |||
|  |         Knockout.track(this, [ | |||
|  |           'controls', | |||
|  |           'showCompass', | |||
|  |           'heading', | |||
|  |           'isOrbiting', | |||
|  |           'orbitCursorAngle', | |||
|  |           'isRotating' | |||
|  |         ]) | |||
|  |         var that = this | |||
|  | 
 | |||
|  |         function widgetChange() { | |||
|  |           if (defined(that.terria)) { | |||
|  |             if (that._unsubcribeFromPostRender) { | |||
|  |               that._unsubcribeFromPostRender() | |||
|  |               that._unsubcribeFromPostRender = undefined | |||
|  |             } | |||
|  |             that.showCompass = true | |||
|  |             that._unsubcribeFromPostRender = that.terria.scene.postRender.addEventListener( | |||
|  |               function() { | |||
|  |                 that.heading = that.terria.scene.camera.heading | |||
|  |               } | |||
|  |             ) | |||
|  |           } else { | |||
|  |             if (that._unsubcribeFromPostRender) { | |||
|  |               that._unsubcribeFromPostRender() | |||
|  |               that._unsubcribeFromPostRender = undefined | |||
|  |             } | |||
|  |             that.showCompass = false | |||
|  |           } | |||
|  |         } | |||
|  | 
 | |||
|  |         this.eventHelper.add(this.terria.afterWidgetChanged, widgetChange, this) | |||
|  |         widgetChange() | |||
|  |       } | |||
|  |       NavigationViewModel.prototype.destroy = function() { | |||
|  |         this.eventHelper.removeAll() | |||
|  |       } | |||
|  |       NavigationViewModel.prototype.show = function(container) { | |||
|  |         var testing = | |||
|  |           '<div class="compass" title="拖动外圈:旋转视图,' + | |||
|  |           '拖动内陀螺仪:自由轨道,' + | |||
|  |           '双击:重置视图,' + | |||
|  |           '提示:您还可以按住CTRL键并拖动地图来释放轨道." data-bind="visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }">' + | |||
|  |           '<div class="compass-outer-ring-background"></div>' + | |||
|  |           " <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: 'rotate(-' + orbitCursorAngle + 'rad)', '-webkit-transform': 'rotate(-' + orbitCursorAngle + 'rad)', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>" + | |||
|  |           " <div class=\"compass-outer-ring\" title=\"单击并拖动以旋转相机\" data-bind=\"style: { transform: 'rotate(-' + heading + 'rad)', '-webkit-transform': 'rotate(-' + heading + 'rad)' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>" + | |||
|  |           ' <div class="compass-gyro-background"></div>' + | |||
|  |           ' <div class="compass-gyro" data-bind="cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \'compass-gyro-active\': isOrbiting }"></div>' + | |||
|  |           '</div>' + | |||
|  |           '<div class="navigation-controls">' + | |||
|  |           '<!-- ko foreach: controls -->' + | |||
|  |           "<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? 'navigation-control-last' : 'navigation-control' \">" + | |||
|  |           '   <!-- ko if: $data.hasText -->' + | |||
|  |           '   <div data-bind="text: $data.text, css: $data.isActive ?  \'navigation-control-icon-active \' + $data.cssClass : $data.cssClass"></div>' + | |||
|  |           '   <!-- /ko -->' + | |||
|  |           '  <!-- ko ifnot: $data.hasText -->' + | |||
|  |           '  <div data-bind="cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ?  \'navigation-control-icon-active \' + $data.cssClass : $data.cssClass"></div>' + | |||
|  |           '  <!-- /ko -->' + | |||
|  |           ' </div>' + | |||
|  |           ' <!-- /ko -->' + | |||
|  |           '</div>' | |||
|  |         loadView(testing, container, this) | |||
|  |       } | |||
|  |       NavigationViewModel.prototype.add = function(control) { | |||
|  |         this.controls.push(control) | |||
|  |       } | |||
|  |       NavigationViewModel.prototype.remove = function(control) { | |||
|  |         this.controls.remove(control) | |||
|  |       } | |||
|  |       NavigationViewModel.prototype.isLastControl = function(control) { | |||
|  |         return control === this.controls[this.controls.length - 1] | |||
|  |       } | |||
|  |       var vectorScratch = new Cartesian2() | |||
|  |       NavigationViewModel.prototype.handleMouseDown = function(viewModel, e) { | |||
|  |         var scene = this.terria.scene | |||
|  |         if (scene.mode == SceneMode.MORPHING) { | |||
|  |           return true | |||
|  |         } | |||
|  |         var compassElement = e.currentTarget | |||
|  |         var compassRectangle = e.currentTarget.getBoundingClientRect() | |||
|  |         var maxDistance = compassRectangle.width / 2 | |||
|  |         var center = new Cartesian2( | |||
|  |           (compassRectangle.right - compassRectangle.left) / 2, | |||
|  |           (compassRectangle.bottom - compassRectangle.top) / 2 | |||
|  |         ) | |||
|  |         var clickLocation = new Cartesian2( | |||
|  |           e.clientX - compassRectangle.left, | |||
|  |           e.clientY - compassRectangle.top | |||
|  |         ) | |||
|  |         var vector = Cartesian2.subtract(clickLocation, center, vectorScratch) | |||
|  |         var distanceFromCenter = Cartesian2.magnitude(vector) | |||
|  |         var distanceFraction = distanceFromCenter / maxDistance | |||
|  |         var nominalTotalRadius = 145 | |||
|  |         var norminalGyroRadius = 50 | |||
|  |         if (distanceFraction < norminalGyroRadius / nominalTotalRadius) { | |||
|  |           orbit(this, compassElement, vector) | |||
|  |         } else if (distanceFraction < 1) { | |||
|  |           rotate(this, compassElement, vector) | |||
|  |         } else { | |||
|  |           return true | |||
|  |         } | |||
|  |       } | |||
|  |       var oldTransformScratch = new Matrix4() | |||
|  |       var newTransformScratch = new Matrix4() | |||
|  |       var centerScratch = new Cartesian3() | |||
|  |       NavigationViewModel.prototype.handleDoubleClick = function(viewModel, e) { | |||
|  |         var scene = viewModel.terria.scene | |||
|  |         var camera = scene.camera | |||
|  |         var sscc = scene.screenSpaceCameraController | |||
|  |         if (scene.mode == SceneMode.MORPHING || !sscc.enableInputs) { | |||
|  |           return true | |||
|  |         } | |||
|  |         if (scene.mode == SceneMode.COLUMBUS_VIEW && !sscc.enableTranslate) { | |||
|  |           return | |||
|  |         } | |||
|  |         if ( | |||
|  |           scene.mode == SceneMode.SCENE3D || | |||
|  |           scene.mode == SceneMode.COLUMBUS_VIEW | |||
|  |         ) { | |||
|  |           if (!sscc.enableLook) { | |||
|  |             return | |||
|  |           } | |||
|  |           if (scene.mode == SceneMode.SCENE3D) { | |||
|  |             if (!sscc.enableRotate) { | |||
|  |               return | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |         var center = Utils.getCameraFocus(viewModel.terria, true, centerScratch) | |||
|  |         if (!defined(center)) { | |||
|  |           this.controls[1].resetView() | |||
|  |           return | |||
|  |         } | |||
|  |         var cameraPosition = scene.globe.ellipsoid.cartographicToCartesian( | |||
|  |           camera.positionCartographic, | |||
|  |           new Cartesian3() | |||
|  |         ) | |||
|  |         var surfaceNormal = scene.globe.ellipsoid.geodeticSurfaceNormal(center) | |||
|  |         var focusBoundingSphere = new BoundingSphere(center, 0) | |||
|  |         camera.flyToBoundingSphere(focusBoundingSphere, { | |||
|  |           offset: new HeadingPitchRange( | |||
|  |             0, | |||
|  |             CesiumMath.PI_OVER_TWO - | |||
|  |               Cartesian3.angleBetween(surfaceNormal, camera.directionWC), | |||
|  |             Cartesian3.distance(cameraPosition, center) | |||
|  |           ), | |||
|  |           duration: 1.5 | |||
|  |         }) | |||
|  |       } | |||
|  |       NavigationViewModel.create = function(options) { | |||
|  |         var result = new NavigationViewModel(options) | |||
|  |         result.show(options.container) | |||
|  |         return result | |||
|  |       } | |||
|  |       function orbit(viewModel, compassElement, cursorVector) { | |||
|  |         var scene = viewModel.terria.scene | |||
|  |         var sscc = scene.screenSpaceCameraController | |||
|  |         if (scene.mode == SceneMode.MORPHING || !sscc.enableInputs) { | |||
|  |           return | |||
|  |         } | |||
|  |         switch (scene.mode) { | |||
|  |           case SceneMode.COLUMBUS_VIEW: | |||
|  |             if (sscc.enableLook) { | |||
|  |               break | |||
|  |             } | |||
|  |             if (!sscc.enableTranslate || !sscc.enableTilt) { | |||
|  |               return | |||
|  |             } | |||
|  |             break | |||
|  |           case SceneMode.SCENE3D: | |||
|  |             if (sscc.enableLook) { | |||
|  |               break | |||
|  |             } | |||
|  |             if (!sscc.enableTilt || !sscc.enableRotate) { | |||
|  |               return | |||
|  |             } | |||
|  |             break | |||
|  |           case SceneMode.SCENE2D: | |||
|  |             if (!sscc.enableTranslate) { | |||
|  |               return | |||
|  |             } | |||
|  |             break | |||
|  |         } | |||
|  |         document.removeEventListener( | |||
|  |           'mousemove', | |||
|  |           viewModel.orbitMouseMoveFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         document.removeEventListener( | |||
|  |           'mouseup', | |||
|  |           viewModel.orbitMouseUpFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         if (defined(viewModel.orbitTickFunction)) { | |||
|  |           viewModel.terria.clock.onTick.removeEventListener( | |||
|  |             viewModel.orbitTickFunction | |||
|  |           ) | |||
|  |         } | |||
|  |         viewModel.orbitMouseMoveFunction = undefined | |||
|  |         viewModel.orbitMouseUpFunction = undefined | |||
|  |         viewModel.orbitTickFunction = undefined | |||
|  |         viewModel.isOrbiting = true | |||
|  |         viewModel.orbitLastTimestamp = getTimestamp() | |||
|  |         var camera = scene.camera | |||
|  |         if (defined(viewModel.terria.trackedEntity)) { | |||
|  |           viewModel.orbitFrame = undefined | |||
|  |           viewModel.orbitIsLook = false | |||
|  |         } else { | |||
|  |           var center = Utils.getCameraFocus( | |||
|  |             viewModel.terria, | |||
|  |             true, | |||
|  |             centerScratch | |||
|  |           ) | |||
|  |           if (!defined(center)) { | |||
|  |             viewModel.orbitFrame = Transforms.eastNorthUpToFixedFrame( | |||
|  |               camera.positionWC, | |||
|  |               scene.globe.ellipsoid, | |||
|  |               newTransformScratch | |||
|  |             ) | |||
|  |             viewModel.orbitIsLook = true | |||
|  |           } else { | |||
|  |             viewModel.orbitFrame = Transforms.eastNorthUpToFixedFrame( | |||
|  |               center, | |||
|  |               scene.globe.ellipsoid, | |||
|  |               newTransformScratch | |||
|  |             ) | |||
|  |             viewModel.orbitIsLook = false | |||
|  |           } | |||
|  |         } | |||
|  |         viewModel.orbitTickFunction = function(e) { | |||
|  |           var timestamp = getTimestamp() | |||
|  |           var deltaT = timestamp - viewModel.orbitLastTimestamp | |||
|  |           var rate = ((viewModel.orbitCursorOpacity - 0.5) * 2.5) / 1e3 | |||
|  |           var distance = deltaT * rate | |||
|  |           var angle = viewModel.orbitCursorAngle + CesiumMath.PI_OVER_TWO | |||
|  |           var x = Math.cos(angle) * distance | |||
|  |           var y = Math.sin(angle) * distance | |||
|  |           var oldTransform | |||
|  |           if (defined(viewModel.orbitFrame)) { | |||
|  |             oldTransform = Matrix4.clone(camera.transform, oldTransformScratch) | |||
|  |             camera.lookAtTransform(viewModel.orbitFrame) | |||
|  |           } | |||
|  |           if (scene.mode == SceneMode.SCENE2D) { | |||
|  |             camera.move( | |||
|  |               new Cartesian3(x, y, 0), | |||
|  |               (Math.max(scene.canvas.clientWidth, scene.canvas.clientHeight) / | |||
|  |                 100) * | |||
|  |                 camera.positionCartographic.height * | |||
|  |                 distance | |||
|  |             ) | |||
|  |           } else { | |||
|  |             if (viewModel.orbitIsLook) { | |||
|  |               camera.look(Cartesian3.UNIT_Z, -x) | |||
|  |               camera.look(camera.right, -y) | |||
|  |             } else { | |||
|  |               camera.rotateLeft(x) | |||
|  |               camera.rotateUp(y) | |||
|  |             } | |||
|  |           } | |||
|  |           if (defined(viewModel.orbitFrame)) { | |||
|  |             camera.lookAtTransform(oldTransform) | |||
|  |           } | |||
|  |           viewModel.orbitLastTimestamp = timestamp | |||
|  |         } | |||
|  |         function updateAngleAndOpacity(vector, compassWidth) { | |||
|  |           var angle = Math.atan2(-vector.y, vector.x) | |||
|  |           viewModel.orbitCursorAngle = CesiumMath.zeroToTwoPi( | |||
|  |             angle - CesiumMath.PI_OVER_TWO | |||
|  |           ) | |||
|  |           var distance = Cartesian2.magnitude(vector) | |||
|  |           var maxDistance = compassWidth / 2 | |||
|  |           var distanceFraction = Math.min(distance / maxDistance, 1) | |||
|  |           var easedOpacity = 0.5 * distanceFraction * distanceFraction + 0.5 | |||
|  |           viewModel.orbitCursorOpacity = easedOpacity | |||
|  |         } | |||
|  | 
 | |||
|  |         viewModel.orbitMouseMoveFunction = function(e) { | |||
|  |           var compassRectangle = compassElement.getBoundingClientRect() | |||
|  |           var center = new Cartesian2( | |||
|  |             (compassRectangle.right - compassRectangle.left) / 2, | |||
|  |             (compassRectangle.bottom - compassRectangle.top) / 2 | |||
|  |           ) | |||
|  |           var clickLocation = new Cartesian2( | |||
|  |             e.clientX - compassRectangle.left, | |||
|  |             e.clientY - compassRectangle.top | |||
|  |           ) | |||
|  |           var vector = Cartesian2.subtract(clickLocation, center, vectorScratch) | |||
|  |           updateAngleAndOpacity(vector, compassRectangle.width) | |||
|  |         } | |||
|  |         viewModel.orbitMouseUpFunction = function(e) { | |||
|  |           viewModel.isOrbiting = false | |||
|  |           document.removeEventListener( | |||
|  |             'mousemove', | |||
|  |             viewModel.orbitMouseMoveFunction, | |||
|  |             false | |||
|  |           ) | |||
|  |           document.removeEventListener( | |||
|  |             'mouseup', | |||
|  |             viewModel.orbitMouseUpFunction, | |||
|  |             false | |||
|  |           ) | |||
|  |           if (defined(viewModel.orbitTickFunction)) { | |||
|  |             viewModel.terria.clock.onTick.removeEventListener( | |||
|  |               viewModel.orbitTickFunction | |||
|  |             ) | |||
|  |           } | |||
|  |           viewModel.orbitMouseMoveFunction = undefined | |||
|  |           viewModel.orbitMouseUpFunction = undefined | |||
|  |           viewModel.orbitTickFunction = undefined | |||
|  |         } | |||
|  |         document.addEventListener( | |||
|  |           'mousemove', | |||
|  |           viewModel.orbitMouseMoveFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         document.addEventListener( | |||
|  |           'mouseup', | |||
|  |           viewModel.orbitMouseUpFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         viewModel.terria.clock.onTick.addEventListener( | |||
|  |           viewModel.orbitTickFunction | |||
|  |         ) | |||
|  |         updateAngleAndOpacity( | |||
|  |           cursorVector, | |||
|  |           compassElement.getBoundingClientRect().width | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       function rotate(viewModel, compassElement, cursorVector) { | |||
|  |         var scene = viewModel.terria.scene | |||
|  |         var camera = scene.camera | |||
|  |         var sscc = scene.screenSpaceCameraController | |||
|  |         if ( | |||
|  |           scene.mode == SceneMode.MORPHING || | |||
|  |           scene.mode == SceneMode.SCENE2D || | |||
|  |           !sscc.enableInputs | |||
|  |         ) { | |||
|  |           return | |||
|  |         } | |||
|  |         if ( | |||
|  |           !sscc.enableLook && | |||
|  |           (scene.mode == SceneMode.COLUMBUS_VIEW || | |||
|  |             (scene.mode == SceneMode.SCENE3D && !sscc.enableRotate)) | |||
|  |         ) { | |||
|  |           return | |||
|  |         } | |||
|  |         document.removeEventListener( | |||
|  |           'mousemove', | |||
|  |           viewModel.rotateMouseMoveFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         document.removeEventListener( | |||
|  |           'mouseup', | |||
|  |           viewModel.rotateMouseUpFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         viewModel.rotateMouseMoveFunction = undefined | |||
|  |         viewModel.rotateMouseUpFunction = undefined | |||
|  |         viewModel.isRotating = true | |||
|  |         viewModel.rotateInitialCursorAngle = Math.atan2( | |||
|  |           -cursorVector.y, | |||
|  |           cursorVector.x | |||
|  |         ) | |||
|  |         if (defined(viewModel.terria.trackedEntity)) { | |||
|  |           viewModel.rotateFrame = undefined | |||
|  |           viewModel.rotateIsLook = false | |||
|  |         } else { | |||
|  |           var viewCenter = Utils.getCameraFocus( | |||
|  |             viewModel.terria, | |||
|  |             true, | |||
|  |             centerScratch | |||
|  |           ) | |||
|  |           if ( | |||
|  |             !defined(viewCenter) || | |||
|  |             (scene.mode == SceneMode.COLUMBUS_VIEW && | |||
|  |               !sscc.enableLook && | |||
|  |               !sscc.enableTranslate) | |||
|  |           ) { | |||
|  |             viewModel.rotateFrame = Transforms.eastNorthUpToFixedFrame( | |||
|  |               camera.positionWC, | |||
|  |               scene.globe.ellipsoid, | |||
|  |               newTransformScratch | |||
|  |             ) | |||
|  |             viewModel.rotateIsLook = true | |||
|  |           } else { | |||
|  |             viewModel.rotateFrame = Transforms.eastNorthUpToFixedFrame( | |||
|  |               viewCenter, | |||
|  |               scene.globe.ellipsoid, | |||
|  |               newTransformScratch | |||
|  |             ) | |||
|  |             viewModel.rotateIsLook = false | |||
|  |           } | |||
|  |         } | |||
|  |         var oldTransform | |||
|  |         if (defined(viewModel.rotateFrame)) { | |||
|  |           oldTransform = Matrix4.clone(camera.transform, oldTransformScratch) | |||
|  |           camera.lookAtTransform(viewModel.rotateFrame) | |||
|  |         } | |||
|  |         viewModel.rotateInitialCameraAngle = -camera.heading | |||
|  |         if (defined(viewModel.rotateFrame)) { | |||
|  |           camera.lookAtTransform(oldTransform) | |||
|  |         } | |||
|  |         viewModel.rotateMouseMoveFunction = function(e) { | |||
|  |           var compassRectangle = compassElement.getBoundingClientRect() | |||
|  |           var center = new Cartesian2( | |||
|  |             (compassRectangle.right - compassRectangle.left) / 2, | |||
|  |             (compassRectangle.bottom - compassRectangle.top) / 2 | |||
|  |           ) | |||
|  |           var clickLocation = new Cartesian2( | |||
|  |             e.clientX - compassRectangle.left, | |||
|  |             e.clientY - compassRectangle.top | |||
|  |           ) | |||
|  |           var vector = Cartesian2.subtract(clickLocation, center, vectorScratch) | |||
|  |           var angle = Math.atan2(-vector.y, vector.x) | |||
|  |           var angleDifference = angle - viewModel.rotateInitialCursorAngle | |||
|  |           var newCameraAngle = CesiumMath.zeroToTwoPi( | |||
|  |             viewModel.rotateInitialCameraAngle - angleDifference | |||
|  |           ) | |||
|  |           var camera = viewModel.terria.scene.camera | |||
|  |           var oldTransform | |||
|  |           if (defined(viewModel.rotateFrame)) { | |||
|  |             oldTransform = Matrix4.clone(camera.transform, oldTransformScratch) | |||
|  |             camera.lookAtTransform(viewModel.rotateFrame) | |||
|  |           } | |||
|  |           var currentCameraAngle = -camera.heading | |||
|  |           camera.rotateRight(newCameraAngle - currentCameraAngle) | |||
|  |           if (defined(viewModel.rotateFrame)) { | |||
|  |             camera.lookAtTransform(oldTransform) | |||
|  |           } | |||
|  |         } | |||
|  |         viewModel.rotateMouseUpFunction = function(e) { | |||
|  |           viewModel.isRotating = false | |||
|  |           document.removeEventListener( | |||
|  |             'mousemove', | |||
|  |             viewModel.rotateMouseMoveFunction, | |||
|  |             false | |||
|  |           ) | |||
|  |           document.removeEventListener( | |||
|  |             'mouseup', | |||
|  |             viewModel.rotateMouseUpFunction, | |||
|  |             false | |||
|  |           ) | |||
|  |           viewModel.rotateMouseMoveFunction = undefined | |||
|  |           viewModel.rotateMouseUpFunction = undefined | |||
|  |         } | |||
|  |         document.addEventListener( | |||
|  |           'mousemove', | |||
|  |           viewModel.rotateMouseMoveFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |         document.addEventListener( | |||
|  |           'mouseup', | |||
|  |           viewModel.rotateMouseUpFunction, | |||
|  |           false | |||
|  |         ) | |||
|  |       } | |||
|  | 
 | |||
|  |       return NavigationViewModel | |||
|  |     }) | |||
|  |     define('CesiumNavigation', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/defineProperties', | |||
|  |       'Cesium/Core/Event', | |||
|  |       'KnockoutES5', | |||
|  |       'Core/registerKnockoutBindings', | |||
|  |       'ViewModels/DistanceLegendViewModel', | |||
|  |       'ViewModels/NavigationViewModel' | |||
|  |     ], function( | |||
|  |       defined, | |||
|  |       defineProperties, | |||
|  |       CesiumEvent, | |||
|  |       Knockout, | |||
|  |       registerKnockoutBindings, | |||
|  |       DistanceLegendViewModel, | |||
|  |       NavigationViewModel | |||
|  |     ) { | |||
|  |       'use strict' | |||
|  |       var CesiumNavigation = function(viewerCesiumWidget) { | |||
|  |         initialize.apply(this, arguments) | |||
|  |         this._onDestroyListeners = [] | |||
|  |       } | |||
|  |       CesiumNavigation.prototype.distanceLegendViewModel = undefined | |||
|  |       CesiumNavigation.prototype.navigationViewModel = undefined | |||
|  |       CesiumNavigation.prototype.navigationDiv = undefined | |||
|  |       CesiumNavigation.prototype.distanceLegendDiv = undefined | |||
|  |       CesiumNavigation.prototype.terria = undefined | |||
|  |       CesiumNavigation.prototype.container = undefined | |||
|  |       CesiumNavigation.prototype._onDestroyListeners = undefined | |||
|  |       CesiumNavigation.prototype.destroy = function() { | |||
|  |         if (defined(this.navigationViewModel)) { | |||
|  |           this.navigationViewModel.destroy() | |||
|  |         } | |||
|  |         if (defined(this.distanceLegendViewModel)) { | |||
|  |           this.distanceLegendViewModel.destroy() | |||
|  |         } | |||
|  |         if (defined(this.navigationDiv)) { | |||
|  |           this.navigationDiv.parentNode.removeChild(this.navigationDiv) | |||
|  |         } | |||
|  |         delete this.navigationDiv | |||
|  |         if (defined(this.distanceLegendDiv)) { | |||
|  |           this.distanceLegendDiv.parentNode.removeChild(this.distanceLegendDiv) | |||
|  |         } | |||
|  |         delete this.distanceLegendDiv | |||
|  |         if (defined(this.container)) { | |||
|  |           this.container.parentNode.removeChild(this.container) | |||
|  |         } | |||
|  |         delete this.container | |||
|  |         for (var i = 0; i < this._onDestroyListeners.length; i++) { | |||
|  |           this._onDestroyListeners[i]() | |||
|  |         } | |||
|  |       } | |||
|  |       CesiumNavigation.prototype.addOnDestroyListener = function(callback) { | |||
|  |         if (typeof callback === 'function') { | |||
|  |           this._onDestroyListeners.push(callback) | |||
|  |         } | |||
|  |       } | |||
|  |       function initialize(viewerCesiumWidget, options) { | |||
|  |         if (!defined(viewerCesiumWidget)) { | |||
|  |           throw new DeveloperError('CesiumWidget or Viewer is required.') | |||
|  |         } | |||
|  |         var cesiumWidget = defined(viewerCesiumWidget.cesiumWidget) | |||
|  |           ? viewerCesiumWidget.cesiumWidget | |||
|  |           : viewerCesiumWidget | |||
|  |         var container = document.createElement('div') | |||
|  |         container.className = 'cesium-widget-cesiumNavigationContainer' | |||
|  |         cesiumWidget.container.appendChild(container) | |||
|  |         this.terria = viewerCesiumWidget | |||
|  |         this.terria.options = options | |||
|  |         this.terria.afterWidgetChanged = new CesiumEvent() | |||
|  |         this.terria.beforeWidgetChanged = new CesiumEvent() | |||
|  |         this.container = container | |||
|  |         this.navigationDiv = document.createElement('div') | |||
|  |         this.navigationDiv.setAttribute('id', 'navigationDiv') | |||
|  |         this.distanceLegendDiv = document.createElement('div') | |||
|  |         this.navigationDiv.setAttribute('id', 'distanceLegendDiv') | |||
|  |         container.appendChild(this.navigationDiv) | |||
|  |         container.appendChild(this.distanceLegendDiv) | |||
|  |         registerKnockoutBindings() | |||
|  |         this.distanceLegendViewModel = DistanceLegendViewModel.create({ | |||
|  |           container: this.distanceLegendDiv, | |||
|  |           terria: this.terria, | |||
|  |           mapElement: container | |||
|  |         }) | |||
|  |         this.navigationViewModel = NavigationViewModel.create({ | |||
|  |           container: this.navigationDiv, | |||
|  |           terria: this.terria | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       return CesiumNavigation | |||
|  |     }) | |||
|  |     define('dummy/require-less/less/dummy', [], function() {}) | |||
|  |     define('viewerCesiumNavigationMixin', [ | |||
|  |       'Cesium/Core/defined', | |||
|  |       'Cesium/Core/defineProperties', | |||
|  |       'Cesium/Core/DeveloperError', | |||
|  |       'CesiumNavigation', | |||
|  |       'dummy/require-less/less/dummy' | |||
|  |     ], function(defined, defineProperties, DeveloperError, CesiumNavigation) { | |||
|  |       'use strict' | |||
|  |       function viewerCesiumNavigationMixin(viewer, options) { | |||
|  |         if (!defined(viewer)) { | |||
|  |           throw new DeveloperError('viewer is required.') | |||
|  |         } | |||
|  |         var cesiumNavigation = init(viewer, options) | |||
|  |         cesiumNavigation.addOnDestroyListener( | |||
|  |           (function(viewer) { | |||
|  |             return function() { | |||
|  |               delete viewer.cesiumNavigation | |||
|  |             } | |||
|  |           })(viewer) | |||
|  |         ) | |||
|  |         Object.defineProperties(viewer, { | |||
|  |           cesiumNavigation: { | |||
|  |             configurable: true, | |||
|  |             get: function() { | |||
|  |               return viewer.cesiumWidget.cesiumNavigation | |||
|  |             } | |||
|  |           } | |||
|  |         }) | |||
|  |       } | |||
|  | 
 | |||
|  |       viewerCesiumNavigationMixin.mixinWidget = function( | |||
|  |         cesiumWidget, | |||
|  |         options | |||
|  |       ) { | |||
|  |         return init.apply(undefined, arguments) | |||
|  |       } | |||
|  |       var init = function(viewerCesiumWidget, options) { | |||
|  |         var cesiumNavigation = new CesiumNavigation(viewerCesiumWidget, options) | |||
|  |         var cesiumWidget = defined(viewerCesiumWidget.cesiumWidget) | |||
|  |           ? viewerCesiumWidget.cesiumWidget | |||
|  |           : viewerCesiumWidget | |||
|  |         Object.defineProperties(cesiumWidget, { | |||
|  |           cesiumNavigation: { | |||
|  |             configurable: true, | |||
|  |             get: function() { | |||
|  |               return cesiumNavigation | |||
|  |             } | |||
|  |           } | |||
|  |         }) | |||
|  |         cesiumNavigation.addOnDestroyListener( | |||
|  |           (function(cesiumWidget) { | |||
|  |             return function() { | |||
|  |               delete cesiumWidget.cesiumNavigation | |||
|  |             } | |||
|  |           })(cesiumWidget) | |||
|  |         ) | |||
|  |         return cesiumNavigation | |||
|  |       } | |||
|  |       return viewerCesiumNavigationMixin | |||
|  |     }) | |||
|  |     ;(function(c) { | |||
|  |       var d = document, | |||
|  |         a = 'appendChild', | |||
|  |         i = 'styleSheet', | |||
|  |         s = d.createElement('style') | |||
|  |       s.type = 'text/css' | |||
|  |       d.getElementsByTagName('head')[0][a](s) | |||
|  |       s[i] ? (s[i].cssText = c) : s[a](d.createTextNode(c)) | |||
|  |     })( | |||
|  |       ".full-window{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;overflow:hidden;padding:0;-webkit-transition:left .25s ease-out;-moz-transition:left .25s ease-out;-ms-transition:left .25s ease-out;-o-transition:left .25s ease-out;transition:left .25s ease-out}.transparent-to-input{pointer-events:none}.opaque-to-input{pointer-events:auto}.clickable{cursor:pointer}.markdown a:hover,.markdown u,a:hover{text-decoration:underline}.modal,.modal-background{top:0;left:0;bottom:0;right:0}.modal-background{pointer-events:auto;background-color:rgba(0,0,0,.5);z-index:1000;position:fixed}.modal{position:absolute;margin:auto;background-color:#2f353c;max-height:100%;max-width:100%;font-family:'Roboto',sans-serif;color:#fff}.modal-header{background-color:rgba(0,0,0,.2);border-bottom:1px solid rgba(100,100,100,.6);font-size:15px;line-height:40px;margin:0}.modal-header h1{font-size:15px;color:#fff;margin-left:15px}.modal-content{margin-left:15px;margin-right:15px;margin-bottom:15px;padding-top:15px;overflow:auto}.modal-close-button{position:absolute;right:15px;cursor:pointer;font-size:18px;color:#fff}#ui{z-index:2100}@media print{.full-window{position:initial}}.markdown img{max-width:100%}.markdown svg{max-height:100%}.markdown fieldset,.markdown input,.markdown select,.markdown textarea{font-family:inherit;font-size:1rem;box-sizing:border-box;margin-top:0;margin-bottom:0}.markdown label{vertical-align:middle}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-family:inherit;font-weight:700;line-height:1.25;margin-top:1em;margin-bottom:.5em}.markdown h1{font-size:2rem}.markdown h2{font-size:1.5rem}.markdown h3{font-size:1.25rem}.markdown h4{font-size:1rem}.markdown h5{font-size:.875rem}.markdown h6{font-size:.75rem}.markdown dl,.markdown ol,.markdown p,.markdown ul{margin-top:0;margin-bottom:1rem}.markdown strong{font-weight:700}.markdown em{font-style:italic}.markdown small{font-size:80%}.markdown mark{color:#000;background:#ff0}.markdown s{text-decoration:line-through}.markdown ol{list-style:decimal inside}.markdown ul{list-style:disc inside}.markdown code,.markdown pre,.markdown samp{font-family:monospace;font-size:inherit}.markdown pre{margin-top:0;margin-bottom:1rem;overflow-x:scroll}.markdown a{color:#68adfe;text-decoration:none}.markdown code,.markdown pre{background-color:transparent;border-radius:3px}.markdown hr{border:0;border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:rgba(0,0,0,.125)}.markdown .left-align{text-align:left}.markdown .center{text-align:center}.markdown .right-align{text-align:right}.markdown .justify{text-align:justify}.markdown .truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markdown ol.upper-roman{list-style-type:upper-roman}.markdown ol.lower-alpha{list-style-type:lower-alpha}.markdown ul.circle{list-style-type:circle}.markdown ul.square{list-style-type:square}.markdown .list-reset{list-style:none;padding-left:0}.floating,.floating-horizontal,.floating-vertical{pointer-events:auto;position:absolute;border-radius:15px;background-color:rgba(47,53,60,.8)}.floating-horizontal{padding-left:5px;padding-right:5px}.floating-vertical{padding-top:5px;padding-bottom:5px}@media print{.floating{display:none}}.distance-legend{pointer-events:auto;position:absolute;border-radius:15px;background-color:rgba(47,53,60,.8);padding-left:5px;padding-right:5px;right:94px;bottom:30px;height:30px;width:125px;border:1px solid rgba(255,255,255,.1);box-sizing:content-box}.distance-legend-label{display:inline-block;font-family:'Roboto',sans-serif;font-size:14px;font-weight:lighter;line-height:30px;color:#fff;width:125px;text-align:center}.distance-legend-scale-bar{border-left:1px solid #fff;border-right:1px solid #fff;border-bottom:1px solid #fff;position:absolute;height:10px;top:15px}@media print{.distance-legend{display:none}}@media screen and (max-width:700px),screen and (max-height:420px){.distance-legend{display:none}}.navigation-controls{background:rgb(54,60,66,0.4);transform:scale(1.2);display:flex;position:absolute;left:42px;top:24 | |||
|  |     ) | |||
|  |     define('Cesium/Core/defined', function() { | |||
|  |       return Cesium['defined'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/defineProperties', function() { | |||
|  |       return Cesium['defineProperties'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/defaultValue', function() { | |||
|  |       return Cesium['defaultValue'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Event', function() { | |||
|  |       return Cesium['Event'] | |||
|  |     }) | |||
|  |     define('Cesium/Widgets/getElement', function() { | |||
|  |       return Cesium['getElement'] | |||
|  |     }) | |||
|  |     define('Cesium/Widgets/SvgPathBindingHandler', function() { | |||
|  |       return Cesium['SvgPathBindingHandler'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Ray', function() { | |||
|  |       return Cesium['Ray'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Cartesian3', function() { | |||
|  |       return Cesium['Cartesian3'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Cartographic', function() { | |||
|  |       return Cesium['Cartographic'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/ReferenceFrame', function() { | |||
|  |       return Cesium['ReferenceFrame'] | |||
|  |     }) | |||
|  |     define('Cesium/Scene/SceneMode', function() { | |||
|  |       return Cesium['SceneMode'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/DeveloperError', function() { | |||
|  |       return Cesium['DeveloperError'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/EllipsoidGeodesic', function() { | |||
|  |       return Cesium['EllipsoidGeodesic'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Cartesian2', function() { | |||
|  |       return Cesium['Cartesian2'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/getTimestamp', function() { | |||
|  |       return Cesium['getTimestamp'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/EventHelper', function() { | |||
|  |       return Cesium['EventHelper'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Math', function() { | |||
|  |       return Cesium['Math'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Transforms', function() { | |||
|  |       return Cesium['Transforms'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Matrix4', function() { | |||
|  |       return Cesium['Matrix4'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/BoundingSphere', function() { | |||
|  |       return Cesium['BoundingSphere'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/HeadingPitchRange', function() { | |||
|  |       return Cesium['HeadingPitchRange'] | |||
|  |     }) | |||
|  |     define('Cesium/Scene/Camera', function() { | |||
|  |       return Cesium['Camera'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/Rectangle', function() { | |||
|  |       return Cesium['Rectangle'] | |||
|  |     }) | |||
|  |     define('Cesium/Core/IntersectionTests', function() { | |||
|  |       return Cesium['IntersectionTests'] | |||
|  |     }) | |||
|  |     return require('viewerCesiumNavigationMixin') | |||
|  |   } | |||
|  | ) |